获取本地连接ip 掩码 网关 DNS

//获取本地连接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());
                }
            }
原文地址:https://www.cnblogs.com/xinzheng/p/12837813.html