如何在 C# 中检查当前网络 ID?

问题描述 投票:0回答:1

如何使用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() ?? "";

谢谢!

c# networking ip host
1个回答
0
投票

假设你想要一个 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;
}
© www.soinside.com 2019 - 2024. All rights reserved.