我知道正则表达式是dangerous,用于验证IP地址,因为IP地址可以采用不同的形式.
对于C和C++,我看到了类似的问题,这些问题用C inet_ntop()中不存在的函数来解决.
这个NET解决方案只处理标准的"ddd.ddd.ddd.ddd"表单.有什么建议吗?
我知道正则表达式是dangerous,用于验证IP地址,因为IP地址可以采用不同的形式.
对于C和C++,我看到了类似的问题,这些问题用C inet_ntop()中不存在的函数来解决.
这个NET解决方案只处理标准的"ddd.ddd.ddd.ddd"表单.有什么建议吗?
你可以用这个来try 解析它:
IPAddress.TryParse
然后判断AddressFamily
哪个
返回系统.网插座.我的家人.IPv4或系统的互联网络.网插座.我的家人.用于IPv6的InterNetworkV6.
编辑:一些示例代码.根据需要更改:
string input = "your IP address goes here";
IPAddress address;
if (IPAddress.TryParse(input, out address))
{
switch (address.AddressFamily)
{
case System.Net.Sockets.AddressFamily.InterNetwork:
// we have IPv4
break;
case System.Net.Sockets.AddressFamily.InterNetworkV6:
// we have IPv6
break;
default:
// umm... yeah... I'm going to need to take your red packet and...
break;
}
}