查找本地 PC 的子网掩码
Finding the subnet mask of your local PC
我在尝试从我的本地 PC 上获取一些子网信息时遇到了一些困难。此代码 "technically" 运行良好,因为它不包含任何警告或错误,但是当应用程序运行时,返回的所有内容都是“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);
}
}
}
}
我在尝试从我的本地 PC 上获取一些子网信息时遇到了一些困难。此代码 "technically" 运行良好,因为它不包含任何警告或错误,但是当应用程序运行时,返回的所有内容都是“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);
}
}
}
}