Convalida un indirizzo IP inserito dall'utente o il nome dell'host tramite C #
-
28-09-2019 - |
Domanda
In un paio di campi nel mio Windows Form, chiedo un utente di fornire un indirizzo IP o un nome host. C'è un buon espressioni regolari (regex) per convalidare il valore inserito? O c'è un altro metodo che devo considerare? Si prega di notare io preferirei che l'utente inserisce un FQDN o un indirizzo IP.
Soluzione
Ai fini di una prova di futuro la vostra applicazione, suggerirei semplicemente utilizzando IPAddress.TryParse()
per determinare se l'ingresso è un indirizzo IP.
Verifica di un nome host 'valida' è più difficile, anche perché non è stato specificato se il nome host deve esistere o meno. Se lo fa, il modo più semplice sarebbe quella di utilizzare Dns.GetHostEntry()
per vedere se questo produce un risultato. Non è possibile ottenere la convalida molto più accurata sulla base della descrizione che hai dato.
Altri suggerimenti
Perché si bisogno di chiedere l'indirizzo IP e per il nome host per un'applicazione Windows Form? Se questi sono i dettagli di PC locali, si potrebbe ottenere questi da: -
1) Per ottenere il nome dell'host, è possibile chiamare Dns.GetHostName () (vedi MSDN riferimento )
2) per ottenere l'indirizzo IP, è possibile enumerare l'indirizzo IP tramite Dns.GetHostByName () (vedi MSDN di riferimento )
IPAddress.TryParse , se non riesce provare a Dns.GetHostByName