首先,我们需要引入 System.Net 这个命名空间
using System.Net;
string pcName = Dns.GetHostName(); //取计算机名
string ip = Dns.GetHostByName(pcName).AddressList[0].ToString(); //取IP方法一(VS里提示已过时,汗!)
string ip2 = Dns.GetHostEntry(pcName).AddressList[0].ToString(); //取IP方法二
方法2,就是引入 System.Management 首先先添加程序集引用,然后用以下代码获取:
using System.Management;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mc.GetInstances();
foreach (ManagementObject nic in nics)
{
if (Convert.ToBoolean(nic["ipEnabled"]) == true)
{
string mac = nic["MacAddress"].ToString();//Mac地址
string ip = (nic["IPAddress"] as String[])[0];//IP地址
string ipsubnet = (nic["IPSubnet"] as String[])[0];//子网掩码
string ipgateway = (nic["DefaultIPGateway"] as String[])[0];//默认网关
string dns = nic["DNSServerSearchOrder"] as String[])[0]; //DNS
}
}
方法3,引入 System.Net.NetworkInformation 这个命名空间
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
if (adapter.NetworkInterfaceType.ToString().Equals("Ethernet"))
{
IPInterfaceProperties ip = adapter.GetIPProperties(); //IP配置信息
if (ip.UnicastAddresses.Count > 0)
{
ip.UnicastAddresses[0].Address.ToString(); //IP地址
ip.UnicastAddresses[0].IPv4Mask.ToString(); //子网掩码
}
if (ip.GatewayAddresses.Count > 0)