Vamos falar sobre validação de IPv4. O C# já possui um método para esta validação o IPAddress.TryParse. Este método verifica se o valor fornecido pode ser convertido em um endereço IPv4.
Vejamos um exemplo:
IPAddress address; return IPAddress.TryParse(ipv4, out address);
Entretando este método verifica apenas se o valor fornecido pode ser convertido para um endereço IP. Se for fornecido por exemplo o valor “1” será então considerado “0.0.0.1”, retornando assim uma análise inválida.
Você pode implementar um método mais completo como no seguinte exemplo:
public static bool IPv4(string ipv4)
{
if (string.IsNullOrWhiteSpace(ipv4)) return false;
string[] splitValues = ipv4.Split('.');
if (splitValues.Length != 4) return false;
IPAddress address;
return IPAddress.TryParse(ipv4, out address);
}
Neste exemplo verificamos se a string não é nula ou contém espaços para evitar a exceção, verificamos se contém os 3 pontos e os 4 blocos de informação separados pelos pontos e, em seguida, fazemos a validação com IPAddress.TryParse.
Note que este exemplo é válido para a validação do IPv4.
Existem outras alternativas para validação do IPv4 e este é um bom ponto de partida.