【发布时间】:2018-01-26 11:42:27
【问题描述】:
在我的应用中,我需要显示每个可用(wifi 或以太网)适配器的 IP 地址。
问题是每个适配器获得的 IP 地址不止一个,而我获得的最后一个(每个适配器)是我正在寻找的一个。
我不知道前两个(通常是前两个)IP 地址是什么以及如何获得“真实”IP 地址。我将在“真实”之前获得的这两个 IP 地址与 CMD 和“ipconfig”命令进行了比较,它们没有在此处提及,因此它不是默认网关、子网掩码、本地 IPv6 或公共 IP 地址。
这是我的应用输出的内容:
这就是我想要的:
我使用的代码:
foreach (NetworkInterface inf in devs)
{
if (inf.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || inf.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
{
foreach (UnicastIPAddressInformation address in inf.GetIPProperties().UnicastAddresses)
{
if (address.Address.AddressFamily == AddressFamily.InterNetwork)
MessageBox.Show(address.Address.ToString());
}
}
}
【问题讨论】:
-
请向我们展示您的输出
-
对不起,我现在编辑了问题。 @Junaid
-
什么是开发者?您怎么知道每个适配器获得了多个地址?
-
NetworkInterface[] devs= NetworkInterface.GetAllNetworkInterfaces();抱歉忘记了
-
我不清楚你的“真实”IP地址是什么。分配给接口的任何 IP 地址都是真实 IP 地址。使用 IPv6,很容易为每个接口分配多个全局 IP 地址。
标签: c# networking ipv6 ipv4