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.