jueves, 25 de septiembre de 2008

Como obtener una IP a partir de un nombre de dominio en ASP.NET


El caso es el siguiente. Queremos conectarnos a las maquinas que tenemos detras de una conexion con IP dinamica y usamos el viejo truco de los dominios en DynDns.org o servicios semejantes.
Cada vez que queremos saber la IP entonces hacemos un ping a MiDominio.dyndns.org o lo que fuere y ya esta.
Y si lo hacemos un poquito mas pituco?
Agreguemos los siguientes imports:

Imports System.Net
Imports System.Net.NetworkInformation

En el metodo Page_Load de una pagina ASP.NET escribimos (en VB.NET):

Dim hostInfo As IPHostEntry = Dns.GetHostByName("MiDominio.dyndns.org")
Label1.Text = hostInfo.AddressList(0).ToString

y en el Label1 tendremos alegremente la IP que buscamos.

Atentos a que AddressList es en realidad un arreglo ya que eventualmente se podrian obtener varias IPs. para ese caso deberiamos usar un For Each para listarlas todas.

Otra forma sería usar el objeto Ping:

Dim Oping As Ping = New System.Net.NetworkInformation.Ping()
Dim reply As PingReply = Oping.Send("www.google.com")
Label2.Text = reply.Address.ToString

Pero en ocasiones podemos obtener excepciones al probar con sitios no pingueables. En esos casos mejor usar el objeto DNS.

No hay comentarios: