我知道正则表达式是用于验证IP地址的dangerous,因为IP地址可以采用不同的形式。

我已经看到了C和C++的类似问题,并且使用C#inet_ntop()中不存在的函数解决了这些问题

我发现的.NET解决方案仅处理标准的“ddd.ddd.ddd.ddd”格式。有什么建议么?

最佳答案

您可以使用它来尝试解析它:

 IPAddress.TryParse

然后检查AddressFamily


编辑:一些示例代码。根据需要更改:
    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;
        }
    }

关于c# - 如何确定字符串在C#中是有效的IPv4还是IPv6地址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/799060/

10-11 02:05