我想使用System.Net.IPAddress.TryParse来验证IPv6地址,因为我不想编写自己的reg exp: - )
然而,这似乎允许诸如“(validIPv6)](anyatallhere)之类的字符串” - 例如,“1234 :: 5678:abcd] whargarbl”。
这些是否有效,或者这是一个错误?
由于我实际上只想要“[(validIPv6)] :( portnumber)”形式的字符串这一事实使我更加复杂,所以我将不得不自己进行一些验证。
答案 0 :(得分:0)
我正在查看反射器,似乎如果您当前的操作系统不支持IPV6,则会调用一个解析例程,该例程将忽略最后']'
个字符后的所有内容。
这里似乎是违规代码,注意到与前一位代码相关的第二个或条件。
int length = ipString.Length;
fixed (char* str2 = ((char*) ipString))
{
char* name = str2;
if (IPv6AddressHelper.IsValid(name, start, ref length) || (length != ipString.Length))