2011-01-12 15 views
5

Tengo una cadena que puede representar un nombre de host (myip.noip.org, etc.) o puede representar una dirección verdadera ("127.0.0.1"). ¿Cuál es la mejor manera de resolver esto en System.Net.IPAddress?Analizando la dirección IP en .NET

Gracias de antemano.

Respuesta

6

Utilice el método Dns.GetHostAddresses. Esto manejará los nombres de dominio y los valores de dirección IP sin procesar

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

Utilice el método IPAddress.Parse para direcciones IP.

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

Como se ha mencionado por otros, para resolver ambas direcciones IP y nombres de host, utilice el cual Dns.GetHostEntry:

resuelve un nombre de host o la dirección IP a una instancia IPHostEntry.

IPHostEntry tiene una colección de direcciones IP en su propiedad AddressList.

+0

¿Eso resolverá los nombres de host? – dko

+0

No, no lo hará. Usa la clase 'Dns'. – SLaks

+0

OP solicitó la resolución de una dirección IP * o * un nombre de host. Esto solo maneja las direcciones IP – JaredPar

6

Puede llamar al Dns.GetHostEntry en una dirección IP o en un nombre de host.
Incluso hace búsquedas inversas para usted.

Si no necesita una búsqueda inversa, puede llamar al Dns.GetHostAddresses.

+0

'Dns.Resolve' ahora se muestra como obsoleto; parece que 'Dns.GetHostEntry' es el reemplazo directo. – Justin

+1

@Justin: Ya he editado. – SLaks