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
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;
                }
            }
        }