Aquí el source, solo necesitas agregar el control MSWinsck o en su defecto el CSocketMaster:
El código es de lo más simple, se conecta a la web checkip.dyndns.org y manda un GET al index, explora el código que devuelve el webserver para mostrar tan solo la IP pública. Es un método que no me gusta porque en el momento que checkip.dyndns.org deje de funcionar o cambie el formato se jodió nuestro código.
El código no es mío, alguien de este foro me lo pasó hace bastante tiempo por MP y no recuerdo el nombre, sorry.
Código (vb) [Seleccionar]
Private Sub Command1_Click()
Label1.Caption = "Cerrando conexión..."
WS.Close
DoEvents
WS.Connect "checkip.dyndns.org", 80
Label1.Caption = "Conectando..."
DoEvents
End Sub
Private Sub WS_Connect()
Label1.Caption = "Conectado!"
WS.SendData "GET / HTTP/1.1" & vbCrLf & vbCrLf
End Sub
Private Sub WS_DataArrival(ByVal bytesTotal As Long)
Dim Buffer As String
Dim Datos() As String
WS.GetData Buffer, vbString
If InStr(Buffer, "Current IP") <> 0 Then
Datos = Split(Buffer, "<")
Datos = Split(Datos(6), ":")
Label1.Caption = Trim(Datos(1))
Else
Label1.Caption = "IP no encontrada"
End If
End Sub
Private Sub WS_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
On Error Resume Next
Label1.Caption = "Error!"
MsgBox Number & " - " & Description
End Sub
El código es de lo más simple, se conecta a la web checkip.dyndns.org y manda un GET al index, explora el código que devuelve el webserver para mostrar tan solo la IP pública. Es un método que no me gusta porque en el momento que checkip.dyndns.org deje de funcionar o cambie el formato se jodió nuestro código.
El código no es mío, alguien de este foro me lo pasó hace bastante tiempo por MP y no recuerdo el nombre, sorry.