C#编程中获取IP地址是一个常见的任务,它可以帮助我们获取本机的IP地址,以及本机的网络连接状态。获取IP地址的方法有多种,本文将介绍使用C#编程获取IP地址的几种方法,以及每种方法的使用方法。
使用System.Net.Sockets.TcpClient获取IP地址
// 创建TcpClient对象
TcpClient client = new TcpClient();
// 连接到远程服务器
client.Connect("www.example.com", 80);
// 获取本机的IP地址
IPAddress localAddr = ((IPEndPoint)client.Client.LocalEndPoint).Address;
// 打印本机的IP地址
Console.WriteLine(localAddr.ToString());
上面的代码使用了System.Net.Sockets.TcpClient类来获取本机的IP地址,其中,client.Connect方法用于连接远程服务器,通过client.Client.LocalEndPoint获取本机的IP地址,使用Console.WriteLine方法打印出本机的IP地址。
使用System.Net.Dns.GetHostEntry获取IP地址
// 获取本机的IP地址
IPAddress[] localIPs = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
// 打印本机的IP地址
foreach(IPAddress ip in localIPs)
{
Console.WriteLine(ip.ToString());
}
上面的代码使用了System.Net.Dns.GetHostEntry类来获取本机的IP地址,其中,Dns.GetHostName方法用于获取本机的主机名,使用Dns.GetHostEntry方法获取本机的IP地址,使用foreach循环打印出本机的IP地址。
使用System.Net.NetworkInformation.NetworkInterface获取IP地址
// 获取本机的IP地址
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
// 打印本机的IP地址
foreach(NetworkInterface adapter in nics)
{
IPInterfaceProperties ipProps = adapter.GetIPProperties();
foreach(IPAddressInformation ip in ipProps.UnicastAddresses)
{
if(ip.Address.AddressFamily == AddressFamily.InterNetwork)
{
Console.WriteLine(ip.Address.ToString());
}
}
}
上面的代码使用了System.Net.NetworkInformation.NetworkInterface类来获取本机的IP地址,其中,NetworkInterface.GetAllNetworkInterfaces方法用于获取本机的所有网络接口,使用NetworkInterface.GetIPProperties方法获取本机的IP地址,使用foreach循环打印出本机的IP地址。
使用System.Net.NetworkInformation.IPGlobalProperties获取IP地址
// 获取本机的IP地址
IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
// 打印本机的IP地址
foreach(UnicastIPAddressInformation ip in ipProperties.UnicastAddresses)
{
if(ip.Address.AddressFamily == AddressFamily.InterNetwork)
{
Console.WriteLine(ip.Address.ToString());
}
}
上面的代码使用了System.Net.NetworkInformation.IPGlobalProperties类来获取本机的IP地址,其中,IPGlobalProperties.GetIPGlobalProperties方法用于获取本机的全局IP属性,使用IPGlobalProperties.UnicastAddresses方法获取本机的IP地址,使用foreach循环打印出本机的IP地址。
以上就是使用C#编程获取IP地址的几种方法,每种方法的使用方法都有所不同,但都可以达到获取本机的IP地址的目的。