2011-01-12 17 views
5

Ho una stringa che può rappresentare un nome host (myip.noip.org, ecc.) Oppure può rappresentare un indirizzo reale ("127.0.0.1"). Qual è il modo migliore per risolvere questo problema con System.Net.IPAddress?Indirizzo IP di analisi in .NET

Grazie in anticipo.

risposta

6

Utilizzare il metodo Dns.GetHostAddresses. Questo gestirà sia i nomi di dominio che i valori di indirizzo IP non elaborati

IPAddress[] array = DNs.GetHostAddresses(theString); 
1

Utilizzare il metodo IPAddress.Parse per gli indirizzi IP.

IPAddress address = IPAddress.Parse("127.0.0.1"); 

Come detto da altri, per risolvere entrambi gli indirizzi IP ei nomi host, utilizzare Dns.GetHostEntry cui:

Risolve un nome host o un indirizzo IP a un'istanza IPHostEntry.

IPHostEntry detiene una raccolta di indirizzi IP nella sua proprietà AddressList.

+0

Questo risolverà i nomi host? – dko

+0

No, non lo farà. Usa la classe 'Dns'. – SLaks

+0

OP richiesto per risolvere un indirizzo IP * o * un nome host. Questo gestisce solo gli indirizzi IP – JaredPar

6

È possibile chiamare Dns.GetHostEntry su un indirizzo IP o un nome host.
Fa anche ricerche inverse per te.

Se non è necessaria la ricerca inversa, è possibile chiamare Dns.GetHostAddresses.

+0

'Dns.Resolve' è ora elencato come obsoleto; sembra che 'Dns.GetHostEntry' è la sostituzione diretta. – Justin

+1

@Justin: ho già modificato. – SLaks