//获取本地连接ip 掩码 网关 DNS
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface bendi in interfaces)
{
if (bendi.OperationalStatus != OperationalStatus.Up)
{
//break;
}
if ((bendi.Name.StartsWith("以太网") || bendi.Name.StartsWith("本地连接")) && bendi.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
{
IPInterfaceProperties ip = bendi.GetIPProperties();
//获取Ip 掩码
for (int i = 0; i < ip.UnicastAddresses.Count; i++)
{
//不插网线会得到一个保留地址 169.254.126.164
if (ip.UnicastAddresses[i].Address.AddressFamily == AddressFamily.InterNetwork)
{
if (ip.UnicastAddresses[i].Address != null)
MessageBox.Show(ip.UnicastAddresses[i].Address.ToString());
//如果不插网线 获取不了掩码 返回null
if (ip.UnicastAddresses[i].IPv4Mask != null)
MessageBox.Show(ip.UnicastAddresses[i].IPv4Mask.ToString());
}
}
//获取网关
if (ip.GatewayAddresses.Count > 0)
MessageBox.Show(ip.GatewayAddresses[0].Address.ToString());
//获取DNS
//不要DnsAddresses[0].Address.ToString() 不正确 还有警告 “System.Net.IPAddress.Address”已过时:
if (ip.DnsAddresses.Count > 0)
MessageBox.Show(ip.DnsAddresses[0].ToString());
//备用DNS
if (ip.DnsAddresses.Count > 1)
MessageBox.Show(ip.DnsAddresses[1].ToString());
}
}