elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Obtener IP de una URL mediante VB. Net 2010
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener IP de una URL mediante VB. Net 2010  (Leído 6,072 veces)
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Obtener IP de una URL mediante VB. Net 2010
« en: 2 Febrero 2015, 19:52 pm »

Hola
He buscado y buscado pero no lo he conseguido. Todo lo que encuentro es similar a esto

Código
  1. Imports System.Net
  2. Public Class Form1
  3.    Dim mem As String
  4.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5.  
  6.  
  7.  
  8.        Dim strHostName As String
  9.        Dim strIPAddress As String
  10.        strHostName = "http://www.google.es"
  11.        strHostName = System.Net.Dns.GetHostName()
  12.        strIPAddress = System.Net.Dns.GetHostEntry(strHostName).AddressList(0).ToString()
  13.  
  14.        mem = strIPAddress
  15.        TextBox1.Text = strIPAddress
  16.  
  17.    End Sub
  18. End Class

Pero no funciona

el código original en lugar de poner:

 System.Net.Dns.GetHostEntry

ponía:   System.Net.Dns.GetHostByName

pero VB2010 me lo pone como error con una linea verde debajo en señal de advertencia de posible error. si uso  GetHostEntry no me lo subraya pero me da un número muy raro con expresiones variadas

si uso GetHostByName me da un IP normal del tipo:

XX.XXX.XX.XXX

pero siempre me da el mismo. Da igual la URL que introduzca en strHostName


Gracias


En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Obtener IP de una URL mediante VB. Net 2010
« Respuesta #1 en: 2 Febrero 2015, 20:28 pm »

Ya lo he conseguido  ;)

Este es el código para VB.Net 2010:

Código
  1. Imports System.Net
  2. Public Class Form1
  3.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  4.        Dim host As IPHostEntry = Dns.GetHostEntry("www.google.es")
  5.        Dim ip As IPAddress() = host.AddressList
  6.        Dim index As Integer
  7.  
  8.        For index = 0 To ip.Length - 1
  9.            TextBox1.Text = ip(index).ToString
  10.        Next index
  11.    End Sub
  12. End Class


En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Obtener IP de una URL mediante VB. Net 2010
« Respuesta #2 en: 4 Febrero 2015, 16:34 pm »

en teoria, el primer valor del array es la IP, asi que no hace falta hacer el bucle for.

proba solo poner:

Código
  1. TextBox1.Text = ip(0).ToString
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: Obtener IP de una URL mediante VB. Net 2010
« Respuesta #3 en: 4 Febrero 2015, 22:11 pm »

en teoria, el primer valor del array es la IP, asi que no hace falta hacer el bucle for.

Código
  1. TextBox1.Text = ip(0).ToString

Hombre en teoría es la IP ya que es una lista de direcciones, el problema es que a veces el primer item de la colección suele ser una IPv6, a mi también me dió problemas en el pasado.



Bueno, he escrito un ejemplo para ayudarte a obtener las IPv4 asociadas con "X" página

Modo de empleo:
Código
  1.        Dim IPv4List As New List(Of String)(HostNameToIP("foro.elhacker.net", Net.Sockets.AddressFamily.InterNetwork))
  2.        Dim IPv6List As New List(Of String)(HostNameToIP("LOCALHOST", Net.Sockets.AddressFamily.InterNetworkV6))
  3.  
  4.        MessageBox.Show(IPv4List(0)) ' Result: 108.162.205.73
  5.        MessageBox.Show(IPv6List(0)) ' Result: ::1

Source:
Código
  1.    ' HostName To IP
  2.    ' By Elektro
  3.    '
  4.    ' Usage Examples :
  5.    ' MessageBox.Show(HostNameToIP("foro.elhacker.net", Net.Sockets.AddressFamily.InterNetwork).First)
  6.    '
  7.    ''' <summary>
  8.    ''' Gets the specified addresses associated to a Host.
  9.    ''' </summary>
  10.    ''' <param name="hotsName">The Host name.</param>
  11.    ''' <param name="addressFamily">The address family.</param>
  12.    ''' <returns>The addresses.</returns>
  13.    ''' <exception cref="System.NotImplementedException">Address filtering not implemented yet.</exception>
  14.    Public Function HostNameToIP(ByVal hotsName As String,
  15.                                 ByVal addressFamily As Net.Sockets.AddressFamily) As IEnumerable(Of String)
  16.  
  17.        Dim hostInfo As Net.IPHostEntry = Net.Dns.GetHostEntry(hotsName)
  18.        Dim addressList As IEnumerable(Of String)
  19.  
  20.        Try
  21.            hostInfo = Net.Dns.GetHostEntry(hotsName)
  22.  
  23.            Select Case addressFamily
  24.  
  25.                Case Net.Sockets.AddressFamily.InterNetwork,
  26.                    Net.Sockets.AddressFamily.InterNetworkV6 ' IPv4, IPv6.
  27.  
  28.                    addressList = From address As Net.IPAddress In hostInfo.AddressList
  29.                                  Where address.AddressFamily = addressFamily
  30.                                  Select (address.ToString)
  31.  
  32.                Case Else
  33.                    Throw New NotImplementedException("Address filtering not implemented yet.")
  34.  
  35.            End Select
  36.  
  37.        Catch ex As Net.Sockets.SocketException
  38.            Throw
  39.  
  40.        Catch ex As ArgumentNullException
  41.            Throw
  42.  
  43.        Catch ex As Exception
  44.            Throw
  45.  
  46.        End Try
  47.  
  48.        Return addressList
  49.  
  50.    End Function
« Última modificación: 5 Febrero 2015, 00:00 am por Eleкtro » En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Obtener IP de una URL mediante VB. Net 2010
« Respuesta #4 en: 5 Febrero 2015, 00:09 am »

a mi tambien me dio problema con el ipv6 pero para sacar la ip de una red local, no de un host remoto, no sabria si pasa lo mismo tambien en ese caso.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines