当我输入字符串“192”并解析字符串时,即使它不是有效的IPv4地址,也会继续返回IPv4。我尝试添加一个else if(someIP.GetAddressBytes()。Length == 1),但它仍然返回IPv4。IPv4和IPv6地址检查器
IPAddress someIP = IPAddress.Parse("192");
if (someIP.GetAddressBytes().Length == 4)
{
Console.WriteLine("IPv4");
}
else if (someIP.GetAddressBytes().Length == 16)
{
Console.WriteLine("IPv6");
}
else
{
Console.WriteLine("Neither");
}
是什么让你觉得'192'不是一个有效的IP地址? – DavidG
'IPAddress.Parse'似乎以'ping.exe'类似的方式解析地址 - 请参阅此超级用户有关其他有效IP地址表示的答案:http://superuser.com/a/486936/270560 – cubrr
@cubrr Most可能是因为它使用了也可能符合(IETF?)标准的相同底层代码。 – DavidG