查找本地 PC 的子网掩码
本文关键字:子网掩码 PC 查找 | 更新日期: 2023-09-27 18:36:40
我在尝试从本地PC获取一些子网信息时遇到了一些困难。这段代码"技术上"运行良好,因为它不包含警告或错误,但是当应用程序运行时,返回的只是"0.0.0.0"我的应用程序中还有其他非常相似的代码请求 IP 地址、默认网关等,并且工作正常,所以我目前不知道为什么这不返回子网掩码。任何帮助将不胜感激!我错过了什么非常明显的东西,这就是为什么这不起作用?
NetworkInterface[] subnetInterface = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface subnetMask in subnetInterface)
{
UnicastIPAddressInformationCollection UnicastIPInfoCol = subnetMask.GetIPProperties().UnicastAddresses;
foreach (UnicastIPAddressInformation UnicatIPInfo in UnicastIPInfoCol)
{
subnetMaskLabel.Content = UnicatIPInfo.IPv4Mask;
}
我有 3 个网络适配器,2 个 VMWare,当前为此应用程序禁用,还有 1 个本地连接已启用,以便应用程序仅查看该连接。
更新我试图解决获得"255.0.0.0"的问题,但没有成功。当我在应用程序中放置断点时,当信息在" subnetMaskLabel.Content = UnicatIPInfo.IPv4Mask;"语法中传递时,存储的值是正确的子网掩码,但是它显示的是不正确的,关于如何解决这个问题的任何想法?
您可能正在查看非 ipv4 地址。对互联网络地址尝试此操作:
public static void GetSubnetMask()
{
foreach (NetworkInterface adapter in NetworkInterface.GetAllNetworkInterfaces())
{
foreach (UnicastIPAddressInformation unicastIPAddressInformation in adapter.GetIPProperties().UnicastAddresses)
{
if (unicastIPAddressInformation.Address.AddressFamily == AddressFamily.InterNetwork)
{
Console.WriteLine(unicastIPAddressInformation.IPv4Mask);
}
}
}
}