如何使用c#获取当前网络ID?我试过下面的代码。但它正在返回 IP 地址。获取当前网络 ID 的正确方法是什么?请帮助我提供任何示例代码。
IPHostEntry hostEntry = Dns.GetHostEntry(hostName);
IPAddress[] addr = hostEntry.AddressList;
var ip = addr.Where(x => x.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
.FirstOrDefault();
return ip.ToString() ?? "";
谢谢!
假设你想要一个 IPv4 网络。
为了支持不同规模的网络,IPv4 网络分为 3 个不同的地址类别。每个班级都有不同的网络前缀。
A类(8位前缀(/8): 255.0.0.0 从 1 – 126
开始B 级 (/16): 255.255.0.0 从 128 – 191
开始C级(/24): 255.255.255.0 以 192 – 223
开头的地址D 类和 E 类是网络的其余部分,但目前并不重要。欲了解更多信息,您可以查看here.
基本上ip地址的第一个八位字节可以确定网络类别。 here.
提供了一个简单的代码示例 public static string ReturnSubnetmask(string ipaddress)
{
var firstOctet = ReturnFirtsOctet(ipaddress);
if (firstOctet is >= 0 and <= 127)
{
return "255.0.0.0";
}
else if (firstOctet is >= 128 and <= 191)
{
return "255.255.0.0";
}
else if (firstOctet is >= 192 and <= 223)
{
return "255.255.255.0";
}
else
{
return "0.0.0.0";
}
}
public static uint ReturnFirtsOctet(string ipAddress)
{
var iPAddress = System.Net.IPAddress.Parse(ipAddress);
var byteIP = iPAddress.GetAddressBytes();
var ipInUint = (uint)byteIP[0];
return ipInUint;
}