C#获取IP信息

时间:2014-05-28 15:24:16

标签: c# ip nic

我想从我的电脑上获取IP信息。 我可以获得NIC的描述,IP地址和子网掩码,这是我的代码:

foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
        {
            if (ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
            {
                foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses)
                {

                    if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                    {
                        Nics.Add(ni.Description);
                        IPs.Add(ip.Address.ToString());
                        SubnetMasks.Add(ip.IPv4Mask.ToString());


                    }
                }
            }
        }

所以首先,这向我展示了一些奇怪的网卡,我甚至不知道何时输入" ipconfig / all"以及蓝牙获得IP地址的事情。 有没有办法让我得到一个连接的?并获得默认网关?

编辑:

" Nics"," IP"和" SubnetMasks"是ArrayLists。

EDIT2:

我使用了这段代码:

string asdf = "";
        IPHostEntry host;
        host = Dns.GetHostEntry(Dns.GetHostName());
        foreach (IPAddress ip in host.AddressList)
        {
            if (ip.AddressFamily == AddressFamily.InterNetwork)
            {
                MessageBox.Show(ip.ToString());
                asdf = ip.ToString();
            }
        }
        textBox1.Text = asdf;

但问题是,我有VMWare和其他一些有IP地址的NICS,而MessageBox向我展示了所有的IP地址 - 是否总是,用过的是最后一个?我的意思是,如果我在另一台PC上使用此代码并且使用的IP地址不是host.AddressList中的最后一个,那么它将显示错误的IP地址。

0 个答案:

没有答案