c#查找172.16和172.31之间的所有私有IP地址

时间:2015-01-05 15:41:59

标签: c# ip-address

我试图查找IP地址是否在172.16.0.0和172.31.255.255(B类)IP内。如果是,请将其视为私人地址,因此可以使用它。但我无法确定我所做的是正确的。我试图实现这个目的的代码:

 // The requested IP
 System.Net.IPAddress IP = System.Net.Dns.GetHostAddresses(uri)[0];

 // Get the long values of the two IPs in question
 long startIP = System.Net.IPAddress.Parse("172.16").Address;
 long EndIP = System.Net.IPAddress.Parse("172.31").Address;

 if (IP.Address >= startIP && IP.Address <= EndIP)
 {
    // OK the requested domain is an internal one so lets return this..
    return true
 }

我无法真正测试这个,因为我没有172.域名。所以我希望你能理解为什么我这么问。

谢谢

1 个答案:

答案 0 :(得分:1)

我认为检查单个字节会更容易:

    System.Net.IPAddress ipAddress = System.Net.Dns.GetHostAddresses("www.google.be")[0];
    byte[] addressBytes = ipAddress.GetAddressBytes();
    if (addressBytes[0] == 127
        && addressBytes[1] >= 16
        && addressBytes[1] <= 31)
    {
      // found
    }