How to determine if a string is a valid IPv4 or IPv6 address in C#?

前端 未结 7 1272
逝去的感伤
逝去的感伤 2020-12-23 18:48

I know regex is dangerous for validating IP addresses because of the different forms an IP address can take.

I\'ve seen similar questions for C and C++, and those we

相关标签:
7条回答
  • 2020-12-23 19:33

    If you don't want to parse every integer, but only IPs, just check . for IPv4 and : for IPv6.

            if (input.Contains(".") || input.Contains(":"))
            {
                IPAddress address;
                if (IPAddress.TryParse(input, out address))
                {
                    switch (address.AddressFamily)
                    {
                        case AddressFamily.InterNetwork:
                            return Ip4Address;
                        case AddressFamily.InterNetworkV6:
                            return Ip6Address;
                    }
                }
            }
    
    0 讨论(0)
提交回复
热议问题