获取本机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技术站