我想从我的电脑上获取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地址。