C#获取本机IP地址(ipv4)

获取本机IP地址是在编程过程中常用的功能之一,本文将详细讲解如何使用C#获取本机IP地址(ipv4)。

获取本机IP地址的代码

下面是获取本机IP地址的C#代码:

using System.Net;
using System.Net.Sockets;

IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList.FirstOrDefault(address => address.AddressFamily == AddressFamily.InterNetwork);
string localIp = ipAddress.ToString();

解释代码

代码中,Dns.GetHostName()方法会返回计算机的主机名,Dns.GetHostEntry()方法会返回包含IP地址列表的IPHostEntry实例。其中,AddressList属性返回IP地址列表,我们使用FirstOrDefault方法获取第一个ipv4地址。

最后返回的IP地址是字符串类型,通过ToString()方法将IPAddress实例转换成字符串型变量。

需要注意的是,这种方法只能获取到对应网络适配器的IP地址,并不一定是对外可用的公网IP地址。

示例说明

下面给出两个示例,用于解释如何获取本机IP地址:

示例一:获取IP地址字符串

using System.Net;
using System.Net.Sockets;

IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList.FirstOrDefault(address => address.AddressFamily == AddressFamily.InterNetwork);
string localIp = ipAddress.ToString();

Console.WriteLine("本机IPv4地址为:" + localIp);

示例二:获取IP地址的字节数组

using System.Net;
using System.Net.Sockets;

IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList.FirstOrDefault(address => address.AddressFamily == AddressFamily.InterNetwork);
byte[] localIpBytes = ipAddress.GetAddressBytes();

Console.Write("本机IPv4地址的字节数组为:");
foreach(byte b in localIpBytes)
{
    Console.Write(b + ".");
}

在示例二中,我们使用IPAddress实例的GetAddressBytes()方法,将ip地址转换为字节数组,方便处理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#获取本机IP地址(ipv4) - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • C#在MEF框架中手动导入依赖模块

    C#在MEF(Managed Extensibility Framework,托管可扩展性框架)框架中手动导入依赖模块的过程,可以通过以下步骤来完成: 定义一个C#类库(Class Library)来实现MEF插件的导入 首先,在Visual Studio中创建一个C#类库项目,并将其命名为“Plugin”。在项目中添加一个Router接口和一个实现该接口的…

    C# 2023年6月1日
    00
  • C#实现远程关闭和重启计算机的示例代码

    下面是关于C#实现远程关闭和重启计算机的攻略和示例代码: 1.理论知识 要实现远程关闭和重启计算机,需要使用Windows API函数,主要包括以下两个函数: ExitWindowsEx:用于向本地或远程计算机发送关闭、注销、重启等命令; WNetAddConnection2:用于在本地计算机建立远程网络连接,将本地的指定目录与远程目录进行映射。 除此之外,…

    C# 2023年5月31日
    00
  • 在js中实现邮箱格式的验证方法(推荐)

    在 JavaScript 中实现邮箱格式验证方法 在 JavaScript 中,可以使用正则表达式实现邮箱格式验证。本攻略将详细介绍如何在 JavaScript 中实现邮箱格式验证方法,并提供多种验证方式的示例。 步骤一:编写正则表达式 在 JavaScript 中,可以使用正则表达式来验证邮箱格式。以下是一个简单的邮箱格式验证正则表达式: const em…

    C# 2023年5月17日
    00
  • 在 ASP.NET Core 中为 gRPC 服务添加全局异常处理

    在 ASP.NET Core 中为 gRPC 服务添加全局异常处理的攻略如下: 步骤一:创建异常处理器 在 ASP.NET Core 中为 gRPC 服务添加全局异常处理,需要创建一个异常处理器。以下是一个示例: public class GrpcExceptionHandler { public async Task HandleException(Htt…

    C# 2023年5月17日
    00
  • 适合初学者开发的C#在线英汉词典小程序

    我会给您详细讲解如何开发一个适合初学者的C#在线英汉词典小程序的完整攻略。 1. 设计思路 在开始编写代码之前,需要先制定一下整体的设计思路,最好先画出一个简单的流程图,明确需要哪些核心功能以及如何实现。 在这个小程序中,需要实现以下几个核心功能: 用户输入英文单词或汉语词语,并支持模糊查询; 程序返回该单词或词语的英文或中文翻译; 支持添加新单词或词语,并…

    C# 2023年6月1日
    00
  • Unity ScrollRect实现轨迹滑动效果

    首先介绍一下Unity ScrollRect。 ScrollRect是Unity中ScrollView 的组件之一。这个组件提供了一个类似于滚动列表的UI组件,可通过拖动或操作滚动条滚动内容。 接下来详细讲解Unity ScrollRect实现轨迹滑动效果的完整攻略: 创建新项目并新建Canvas对象 在Canvas对象下创建一个新的Panel,将Panel…

    C# 2023年6月3日
    00
  • C#深度优先遍历实现全排列

    下面是 C# 实现全排列深度优先遍历的攻略: 一、深度优先遍历(DFS) 深度优先遍历是一种重要的搜索算法,其基本思想是从某一起点开始,先探索其所有可能的分支,直到结束。在搜索中需要使用一个栈来存储搜索过程中的状态,当搜索到某个状态时,就把这个状态入栈,当搜索到该状态的所有子节点时,把该节点从栈里弹出,回溯到当前节点的上一个状态继续搜索,直到搜索完整个状态空…

    C# 2023年6月8日
    00
  • 浅谈C#2.0泛型中的变化:default关键字

    我来为你详细讲解一下“浅谈C#2.0泛型中的变化:default关键字”的完整攻略。 浅谈C#2.0泛型中的变化:default关键字 1. default关键字的基本使用 default关键字是C#2.0版本中新增的关键字,用于返回类型的默认值。在使用泛型的时候,有时候需要初始化一个泛型类型的变量,但是可能不知道它的具体值,这时候就可以使用default关…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部