none
IP direccion RRS feed

  • Pregunta

  • buenas necesito una ayudita con la direccion ip, bueno pues tengo este codigo

    Dim returnValue As String
                returnValue = IPAddress.Loopback.ToString()
                Return returnValue

    el cual me esta retornando la  direccion ip del localhost 127.0.0.1

    pero en realidad la direccion ip que necesito optener es la ip que tengo en mi pc para coneccion de red lan en la que digamos actualmente tengo 192.168.0.3

    cual seria el codigo que tengo que poner para obtener esta direccion ip???

    les agradezco mucho la informacion
    lunes, 8 de junio de 2009 16:59

Respuestas

  • hola,

    deberias reemplazarla por GetHostEntry()


    Get the IP address in a Windows application


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Diego Galindo jueves, 18 de junio de 2009 17:13
    jueves, 18 de junio de 2009 13:03
  • :-?
    Diego Galindo, tambien apunta a esa solucion (ipentry.addresslist[0].Address) y No es intencion debatir, PERO!!.... pregunto :

    Que ocurre cuando tengo mas de un adaptador o bien la primera IP asignada es una IP6?
    ipentry.AddressList[0].Address, me estara dando la primera IP de cual... IP6/IP4 o IP4/IP6 :-)

    el tema es que Galindo pregunta :
    <<lo estoy probando en un vista y pues me sale la ipv6 me falta probarlo si en un xp me da la ipv4 que pues es la que mas necesito>>
    (no es problema de Vista o XP)
    Puedes seleccionar solo las IP que sean IP4 Si cumplen la expresion : ip.AddressFamily = Net.Sockets.AddressFamily.InterNetwork

    Tengo mis dudas si realmente obtenemos la primera IP4 si IP6 esta configurado y evidentemente no tengo la menor duda de que obtendremos la IP4 si solo tenemos un adaptador y solo IP4

    ... Un abrazo Lluis


    Tu codigo en Vb quedaria algo similar a esto:

        Function GetIPAddress(ByVal computerName As String) As String

            'GetHostByName Es obsoleta... para VB2008 mejor usar GetHostEntry

            Dim ipentry As System.Net.IPHostEntry = System.Net.Dns.GetHostByName("LocalHost")

            'Address Es Obsoleta... para VB2008 mejor usar IpAddress

            Dim oAddr As System.Net.IPAddress = New System.Net.IPAddress(ipentry.AddressList(0).Address)

            Return oAddr.ToString

        End Function



    MVP - Visual Developer
    • Marcado como respuesta Diego Galindo jueves, 18 de junio de 2009 17:13
    jueves, 18 de junio de 2009 14:44
    Moderador

Todas las respuestas

  • hola,

    Podrias probar con una query a WMI

    Get Local IP Address Using WMI


    o sino de esta otro forma:

    Obtener IP con VB.NET y C#

    saludos
    Leandro Tuttini

    Work: Iceberg Solutions
    Blog
    Buenos Aires
    Argentina
    lunes, 8 de junio de 2009 17:05
  • tengo un problema pues me sale que

    Dns.GetHostByName(Host) es obsoleta
    martes, 9 de junio de 2009 2:23
  • bueno pues para que si alguien lo llega a necesitar este me sirvio ---------- Dim returnValue As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName) Return returnValue.AddressList.GetValue(0).ToString -------- pero solo tengo un inconveniente lo estoy probando en un vista y pues me sale la ipv6 me falta probarlo si en un xp me da la ipv4 que pues es la que mas necesito muchas gracias =mente si pueden ayudarme con lo de la version les agradezco
    martes, 9 de junio de 2009 2:33
  • Hola Diego,
    Para obtener la IP4 esta es la solucion...

    For Each ip In System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList
       If ip.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then
         
    'Añadir solo las correspoondientes a IP4
         
    Me.ComboBox1.Items.Add(ip)
    End If
    Next

    Saludos,
    Pep Lluis,

    MVP - Visual Developer
    jueves, 18 de junio de 2009 8:53
    Moderador
  • hola,

    deberias reemplazarla por GetHostEntry()


    Get the IP address in a Windows application


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Diego Galindo jueves, 18 de junio de 2009 17:13
    jueves, 18 de junio de 2009 13:03
  • Hola Leandro,
    Efectivamente si lees mi respuesta, observaras que con GetHostEntry, obtienes una lista de las direcciones de los adaptadores que tengas en el equipo... la respuesta a obtener las IP4 se encuentra en iterar la enumeración y seleccionar solo las que corresponden a IP4 ("
    Net.Sockets.AddressFamily.InterNetwork").

    No debes olvidar que además de poder implementar varios 'stacks' o pila de protocolos sobre un adaptador de red concreto, existe la posibilidad de tener múltiples adaptadores de Red en la misma máquina y por consecuente varias IP4, IP6..etc.

    Saludos,
    Pep Lluis,


    MVP - Visual Developer
    jueves, 18 de junio de 2009 13:58
    Moderador
  • :-)
    Hola,

    Otra opción que puede servirte para saber la IP de cualquier máquina a partir de su nombre:

            public static string GetIPAddress(string computerName)
            {
                System.Net.IPAddress oAddr;
                string sAddr;
                System.Net.IPHostEntry ipentry = System.Net.Dns.GetHostByName(computerName);
                oAddr = new System.Net.IPAddress(ipentry.AddressList[0].Address);
                sAddr = oAddr.ToString();
                return sAddr;
            }
    

    Saludos,

    No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)

    [MS-MVP-MCTS]

    Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
    NUG: http://andorradotnet.com
    Web: http://www.ordeeno.com
    Blog: http://msmvps.com/blogs/lfranco
    Geeks: http://geeks.ms/blogs/lfranco

    jueves, 18 de junio de 2009 14:01
    Moderador
  • :-?
    Diego Galindo, tambien apunta a esa solucion (ipentry.addresslist[0].Address) y No es intencion debatir, PERO!!.... pregunto :

    Que ocurre cuando tengo mas de un adaptador o bien la primera IP asignada es una IP6?
    ipentry.AddressList[0].Address, me estara dando la primera IP de cual... IP6/IP4 o IP4/IP6 :-)

    el tema es que Galindo pregunta :
    <<lo estoy probando en un vista y pues me sale la ipv6 me falta probarlo si en un xp me da la ipv4 que pues es la que mas necesito>>
    (no es problema de Vista o XP)
    Puedes seleccionar solo las IP que sean IP4 Si cumplen la expresion : ip.AddressFamily = Net.Sockets.AddressFamily.InterNetwork

    Tengo mis dudas si realmente obtenemos la primera IP4 si IP6 esta configurado y evidentemente no tengo la menor duda de que obtendremos la IP4 si solo tenemos un adaptador y solo IP4

    ... Un abrazo Lluis


    Tu codigo en Vb quedaria algo similar a esto:

        Function GetIPAddress(ByVal computerName As String) As String

            'GetHostByName Es obsoleta... para VB2008 mejor usar GetHostEntry

            Dim ipentry As System.Net.IPHostEntry = System.Net.Dns.GetHostByName("LocalHost")

            'Address Es Obsoleta... para VB2008 mejor usar IpAddress

            Dim oAddr As System.Net.IPAddress = New System.Net.IPAddress(ipentry.AddressList(0).Address)

            Return oAddr.ToString

        End Function



    MVP - Visual Developer
    • Marcado como respuesta Diego Galindo jueves, 18 de junio de 2009 17:13
    jueves, 18 de junio de 2009 14:44
    Moderador
  • Muchas Gracias a todos ya logre terminar mi clase con la ayuda de todos ustedes...
    jueves, 18 de junio de 2009 17:12