Pergunta

Em alguns campos no meu aplicativo Windows Forms, estou pedindo a um usuário que forneça um endereço IP ou um nome de host. Existe uma boa expressão regular (regex) para validar o valor inserido? Ou há outro método que devo considerar? Observe que eu preferiria que o usuário digite um Fqdn ou um endereço IP.

Foi útil?

Solução

No interesse de à prova de futuro seu aplicativo, eu sugiro apenas usar IPAddress.TryParse() Para determinar se a entrada é um endereço IP.

Verificar um nome de host 'válido' é mais difícil, também porque você não especificou se o nome do host deve existir ou não. Se isso acontecer, a maneira mais fácil seria usar Dns.GetHostEntry() Para ver se isso produz um resultado. Você não pode obter uma validação muito mais precisa com base na descrição que deu.

Outras dicas

Por que você precisaria solicitar o endereço IP e o nome do host para um aplicativo de formulário do Windows? Se esses são os detalhes do PC local, você pode obter estes de:-

1) Para obter o nome do host, você pode ligar Dns.gethostName () (Vejo Referência do MSDN)

2) Para obter o endereço IP, você pode enumerar o endereço IP via Dns.gethostbyName () (Vejo Referência do MSDN)

Tente ligar Ipaddress.TryParse , se falhar, tente Dns.gethostbyName

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top