Ahora puedes obtener la IP de tu conexión desde código.


cualesmiip.e-mision.net pone a tu disposición un servicio contra el que realizar las consultas vía socket.

Puedes conectarte al puerto 999 de cualesmiip.e-mision.net y te devolverá la IP con la que te has conectado.

Pulsa aquí http://cualesmiip.e-mision.net:999, te devolverá tu IP pasando por encima de los proxys.

Una nueva opción: Sí envías el parámetro TIMER, te devolverá la fecha y hora GMT sincronizada con el reloj atómico del National Institute of Standards and Technology (NIST). Para adaptarlo en función de la zona horaria donde os encontréis, te recomiendo revises este enlace.

Cybertowers ha realizado un programa Freeware para utilizar este servicio, interesante sobre todo para los que tienen IP Dinámica. Puedes bajártelo desde aquí (2,5 Mb.).

Os pongo un ejemplo desarrollado en Visual Basic.

Debéis crear un nuevo proyecto e incluir el componente "Microsoft Winsock Control" (MSWINSCK.OCX).
A continuación añadís un Listbox con el nombre Llog y un CommandButton con el nombre Btn_HoraSystem, a continuación este código:


Option Explicit
Private Sub Btn_HoraSystem_Click()
    ' Pedimos la hora del sistema
    Llog "Pedimos la hora del sistema con el comando TIMER"
    Winsock1.SendData "TIMER"
End Sub
Private Sub Form_Load()
    Me.Show
    
    ' Configuramos el Socket y conectamos con el puerto 999
    Winsock1.Protocol = sckTCPProtocol
    Winsock1.RemoteHost = "cualesmiip.e-mision.net"
    Winsock1.RemotePort = 999
    Llog "Conectamos con el puerto " & Winsock1.RemotePort & " de " & Winsock1.RemoteHost
    Llog "para que nos devuelva la IP de nuestra conexión"
    Winsock1.Connect
End Sub
Private Sub Winsock1_Close()
    ' Este evento salta cuando una de las 2 partes cierra la conexión
    Llog "Se ha cerrado la conexión"
End Sub
Private Sub Winsock1_Connect()
    ' Este evento salta cuando se establece la conexión
    Llog "Se ha conectado..."
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    ' Este evento se produce cuando nos llega información
    Dim DatosRecibidos As String
    
    Winsock1.GetData DatosRecibidos, vbString
    Llog DatosRecibidos
End Sub
Sub Llog(Texto As String)
    ' Para llevar un registro por pantalla de lo que pasa en el programa
    Lst_Datos.AddItem Format(Now(), "mmdd") & "." & Format(Now(), "hhmmss") & ": " & Texto
    Lst_Datos.ListIndex = Lst_Datos.ListCount - 1
End Sub


Puedes bajarte el ejemplo aquí

Si tenéis algún problema de conexión o queréis aportar alguna sugerencia, podéis contactar conmigo en CrAzY hOuSe