【发布时间】:2015-01-05 15:41:58
【问题描述】:
我正在尝试查找 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. 域,因此我无法真正对此进行测试。所以我希望你能理解我为什么问这个问题。
谢谢
【问题讨论】:
-
为什么需要一个 172 的“域”来测试这个?
-
编写单元测试...问题解决了。
-
为了使其可测试,将
startIP和EndIP值传递到方法中/否则可配置。在您拥有的 IP 范围内对其进行测试,然后在完成测试后将其设置为“生产”值。 -
如果您只需要知道是否正常工作,您可以使用您机器中实际拥有的范围临时更改 IP 范围...
-
问:
EndIP不应该是System.Net.IPAddress.Parse("172.32")并使用< EndIP进行测试吗?
标签: c# ip-address