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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [¿?] La IP me sale en un formato que no entiendo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [¿?] La IP me sale en un formato que no entiendo.  (Leído 3,281 veces)
Crazy.sx


Desconectado Desconectado

Mensajes: 447



Ver Perfil
[¿?] La IP me sale en un formato que no entiendo.
« en: 28 Noviembre 2012, 05:46 am »

Estoy haciendo un programa para WIFI pero tengo un problemita. A la hora de mostrar la IP del equipo me sale en un formato raro.

Mi IP es:
Código
  1. 192.168.1.2
pero me muestra lo siguiente:

Esta sería la IP: :huh:
Código
  1. fe80::3ddd:f4d5:69b7:ddd8%12



Este es el código que empleo (VB.NET 2010)

Código
  1.            Dim Host As String
  2.            Host = Dns.GetHostName
  3.            Dim IPs As IPHostEntry = Dns.GetHostEntry(Host)
  4.            Dim Direcciones As IPAddress() = IPs.AddressList
  5.            MiIP.Text = Direcciones(0).ToString()

Lo he revisado y comparado con otros códigos pero nada. ¿Qué puede ser?

Gracias.


En línea

Destruir K. LOL
kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: [¿?] La IP me sale en un formato que no entiendo.
« Respuesta #1 en: 28 Noviembre 2012, 08:28 am »

A la hora de mostrar la IP del equipo me sale en un formato raro.

Mi IP es:
Código
  1. 192.168.1.2
pero me muestra lo siguiente:

Esta sería la IP: :huh:
Código
  1. fe80::3ddd:f4d5:69b7:ddd8%12

Es la IP en formato IPv6 asociada a tu máquina. Seguramente tu dirección local IPv4 estára en la posición Direcciones(1) ya que es un Array de Direcciones IPs pertenecientes a tu máquina.

Saludos!


En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: [¿?] La IP me sale en un formato que no entiendo.
« Respuesta #2 en: 28 Noviembre 2012, 13:29 pm »

si, aparte te muestra siempre la primera, fijate abria la consola y hace un ipconfig /all, ahi te deben aparecerlas direcciones de los adaptadores que tengas, para que te muestre la verdadera ip local debes recorrer los adaptadores y de ahi filtrar los que son de tipo local o algo asi, no me acuerdo pero en internet si buscas lo encontras.

saludos.
En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: [¿?] La IP me sale en un formato que no entiendo.
« Respuesta #3 en: 28 Noviembre 2012, 15:44 pm »

Hay que filtrar el AddressList para hallar la IPv4 pública ;)

Aquí te dejo el código:

Código
  1.    Public Function GetPublicIP() As IPAddress
  2.  
  3.        GetPublicIP = Nothing
  4.  
  5.        Dim LocalHost As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName)
  6.  
  7.        For Each Address In LocalHost.AddressList
  8.            'Si no es IPv6'
  9.            If Not (Address.IsIPv6SiteLocal Or Address.IsIPv6Multicast Or Address.IsIPv6LinkLocal) Then
  10.                'Si es de la familia InterNetwork'
  11.                If Address.AddressFamily = Sockets.AddressFamily.InterNetwork Then
  12.                    'Y no es privada'
  13.                    If Not IsPrivateIP(Address) Then
  14.                        Return Address
  15.                    End If
  16.                End If
  17.            End If
  18.        Next
  19.  
  20.    End Function
  21.  
  22.    Public Function IsPrivateIP(ByVal IP As IPAddress) As Boolean
  23.  
  24.        Dim _0, _1 As Byte
  25.  
  26.        'Si el primer byte es 10 es privada'
  27.        'Si el primer byte es 172 y el segundo está entre 16-31 es privada'
  28.        'Si el segundo byte es 168 es privada'
  29.        'De lo contrario es pública'
  30.  
  31.        _0 = IP.GetAddressBytes(0)
  32.        _1 = IP.GetAddressBytes(1)
  33.  
  34.        Select Case _0
  35.            Case 10
  36.                Return True
  37.            Case 172
  38.                If _1 >= 16 And _1 <= 31 Then Return True
  39.            Case 192
  40.                If _1 = 168 Then Return True
  41.        End Select
  42.  
  43.        Return False
  44.  
  45.    End Function
« Última modificación: 28 Noviembre 2012, 15:46 pm por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
Crazy.sx


Desconectado Desconectado

Mensajes: 447



Ver Perfil
Re: [¿?] La IP me sale en un formato que no entiendo.
« Respuesta #4 en: 28 Noviembre 2012, 20:08 pm »

Tienen razón, no me di cuenta de eso. Se trata de la IPv6.

A medida que voy aumentando de a uno los valores me van saliendo distintos resultados y comparando con lo que me sale en la consola sería así (no se si cambia en todos las computadoras):

Citar
Adaptador de LAN inalámbrica Conexión de red inalámbrica:

(3) Dirección IPv6 . . . . . . . . . . : 2002:c7c8:c8bb:c:3ddd:f4d5:69b7:ddd8
(1 )Sitio: dirección IPv6 local. . . . : fec0::c:3ddd:f4d5:69b7:ddd8%2

(4) Dirección IPv6 temporal. . . . . . : 2002:c7c8:c8bb:c:e00f:c51c:971d:fa56

(0) Vínculo: dirección IPv6 local. . . : fe80::3ddd:f4d5:69b7:ddd8%12

(5) Dirección IPv4. . . . . . . . . . . . . . : 192.168.1.2

Adaptador de túnel Teredo Tunneling Pseudo-Interface:

(6)Dirección IPv6 . . . . . . . . . . : 2001:0:9d38:6ab8:101d:395a:3f57:fefd
(2) Vínculo: dirección IPv6 local. . . : fe80::101d:395a:3f57:fefd%13


Como verán, si quisiera mostrar sin problemas la "Dirección IPv4" debo utilizar la posición (5):

Código
  1. MiIP.Text = Direcciones(5).ToString()

Muchas gracias.  ;)
En línea

Destruir K. LOL
seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: [¿?] La IP me sale en un formato que no entiendo.
« Respuesta #5 en: 28 Noviembre 2012, 20:19 pm »

si, pero no siempre va a ser la 5, por eso debes usar ese codigo que recorre cada uno de los adaptadores de red que tengas y filtrar cuando llega a una direccion de tipo IPv4, entonces esa es la direccion que tenes que sacar.
En línea

Crazy.sx


Desconectado Desconectado

Mensajes: 447



Ver Perfil
Re: [¿?] La IP me sale en un formato que no entiendo.
« Respuesta #6 en: 28 Noviembre 2012, 20:27 pm »

Sí, me fijé con otra notebook y me salió cualquier cosa.  :rolleyes:

Estaba revisando el código de Keyen Night y no me funcionó pero me llamó la atención esta parte que tampoco me había dado cuenta:

Código
  1. Address.AddressFamily = Sockets.AddressFamily.InterNetwork

... y entonces, me puse a probar y pude solucionar mi intringulis:

Código
  1.  Dim Host As IPHostEntry
  2.            Dim IPLocal As String = vbNullString
  3.            Host = Dns.GetHostEntry(Dns.GetHostName())
  4.            For Each ip As IPAddress In Host.AddressList
  5.                If ip.AddressFamily = Sockets.AddressFamily.InterNetwork Then
  6.                    'If ip.AddressFamily.ToString() = "InterNetwork" Then 'Tambien lo puedo hacer así jejeje
  7.                    IPLocal = ip.ToString
  8.                End If
  9.            Next

Donde también puedo poner .InterNetworkV6 y veo la IPv6  :P

Muchas gracias a todos de nuevo. Puedo suspirar tranquilo ahora, jaja.  :xD

Un abrazo.
« Última modificación: 28 Noviembre 2012, 20:32 pm por Lucas.AR » En línea

Destruir K. LOL
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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