到目前爲止,我有這樣的代碼:如何判斷一個IP地址是否私密?
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties properties = adapter.GetIPProperties();
foreach (IPAddressInformation uniCast in properties.UnicastAddresses)
{
// Ignore loop-back addresses & IPv6
if (!IPAddress.IsLoopback(uniCast.Address) &&
uniCast.Address.AddressFamily!= AddressFamily.InterNetworkV6)
Addresses.Add(uniCast.Address);
}
}
我怎樣才能篩選私有IP地址呢?以同樣的方式我篩選環回IP地址。
可能更容易轉換爲uint32,然後使用按位運算:'((地址&0xFF000000U)== 0x0A000000U)|| ...'。如果有很多地址檢查它也應該更快。 – Richard
我懷疑這會起作用,但是如果小整數在正確的範圍內,則regexps在概念上是測試的錯誤工具。比較數字比匹配字符串更有效率。 – Anthony
將當前IP轉換爲數字表示,然後查看它是否適合該類別中的任何一個(僅使用數字比較)。它對我來說非常合適。 – Edi