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