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地址的目的。