我试图查找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.域名。所以我希望你能理解为什么我这么问。
谢谢
答案 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
}