Como saber la IP de otra persona desde Excel

Hola mi querida gente! Hoy veremos Como saber la IP de otra persona usando Excel VBA

Y lo haremos de una forma muy sencilla, debemos seguir los siguientes 4 pasos:

Paso #1: Crear un módulo y usar la API URLDownloadToFile

Vale! Este paso es super sencillo

Crear un módulo desde excel vba
Creando un módulo en Excel VBA

Luego declaremos nuestra API URLDownloadToFile, hace un tiempo hice un POST sobre el uso de esta API

#If VBA7 And Win64 Then
    Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
      Alias "URLDownloadToFileA" ( _
        ByVal pCaller As LongPtr, _
        ByVal szURL As String, _
        ByVal szFileName As String, _
        ByVal dwReserved As LongPtr, _
        ByVal lpfnCB As LongPtr _
      ) As Long
#Else
    Private Declare Function URLDownloadToFile Lib "urlmon" _
      Alias "URLDownloadToFileA" ( _
        ByVal pCaller As Long, _
        ByVal szURL As String, _
        ByVal szFileName As String, _
        ByVal dwReserved As Long, _
        ByVal lpfnCB As Long _
      ) As Long
#End If

Paso #2: Descargar la web miip.es para saber la IP de la máquina que lo visita

En la web miip.es podemos visualizar nuestra IP

cómo saber mi ip desde excel
MiIP.es

Usaremos a nuestra API para descargar la web, escribiremos el siguiente código:

Sub SaberMiIP()
    On Error GoTo M4ster
    URLDownloadToFile 0, "https://miip.es", ThisWorkbook.Path & "/archivo.txt", 0, 0
    Exit Sub
M4ster:
    'Si es un bucle lo mejor sería no mostrar ningún mensaje
    MsgBox "Error en la descarga", vbCritical, "M4ster VBA"
End Sub

Paso #3: Leer el archivo descargado con funciones de texto

Si abrimos el archivo de texto, encontraremos esta sección

saber la IP de otra persona
Archivo de texto descargado

Leeremos el archivo agregando el siguiente código

Sub SaberMiIP()
    On Error GoTo M4ster
    URLDownloadToFile 0, "https://miip.es", ThisWorkbook.Path & "/archivo.txt", 0, 0
    Open ThisWorkbook.Path & "/archivo.txt" For Input As #1
    
    Dim linea$, contenido$
    While Not EOF(1)
        Line Input #1, linea$
        contenido = contenido & linea
    Wend
    Close #1
    
    Exit Sub
M4ster:
    'Si es un bucle lo mejor sería no mostrar ningún mensaje
    MsgBox "Error en la descarga", vbCritical, "M4ster VBA"
End Sub

Para leer la IP, usaremos las funciones de texto VBA INSTR y MID

Sub SaberMiIP()
    On Error GoTo M4ster
    URLDownloadToFile 0, "https://miip.es", ThisWorkbook.Path & "/archivo.txt", 0, 0
    Open ThisWorkbook.Path & "/archivo.txt" For Input As #1
    
    Dim linea$, contenido$
    While Not EOF(1)
        Line Input #1, linea$
        contenido = contenido & linea
    Wend
    Close #1
    
    Dim i&, j&, k&, ip$
    i = InStr(contenido, "Tu IP es ") + 9
    j = InStr(contenido, "")
    k = j - i
    ip = Mid(contenido, i, k)
    
    Exit Sub
M4ster:
    'Si es un bucle lo mejor sería no mostrar ningún mensaje
    MsgBox "Error en la descarga", vbCritical, "M4ster VBA"
End Sub

Con este código ya podemos saber nuestra IP

En este ejercicio estoy utilizando declaración de variables cortas, si deseas ver más sobre este tema, puedes visitar ESTE POST

M4ster VBA

Paso #4: Usar a Google Form para saber la IP de otra persona

Vale! En el paso anterior hemos obtenido la dirección IP de nuestro ordenador, ahora vamos obtener la IP de otra persona

En publicaciones anteriores les he mencionado que una forma práctica y «gratis» de obtener información de otra PC es con nuestro amigo Google Form

Usaré este formulario https://docs.google.com/forms/d/e/1FAIpQLSebYPpxnvlhHnginhMPoSYeHeTvtEGjDvx5FNvt8n2WScoztw/viewform?usp=sf_link

Google form saber la ip

Calculamos los name de la casilla (Tú puedes agregar más casillas para obtener más información)

Saber los name de un Google Form Excel

Y nuestro nuevo código quedaría de la siguiente forma

Sub SaberMiIP()
    On Error GoTo M4ster
    URLDownloadToFile 0, "https://miip.es", ThisWorkbook.Path & "/archivo.txt", 0, 0
    Open ThisWorkbook.Path & "/archivo.txt" For Input As #1
    
    Dim linea$, contenido$
    While Not EOF(1)
        Line Input #1, linea$
        contenido = contenido & linea
    Wend
    Close #1
    
    Dim i&, j&, k&, ip$
    i = InStr(contenido, "Tu IP es ") + 9
    j = InStr(contenido, "")
    k = j - i
    ip = Mid(contenido, i, k)
    
    
    Dim Respuesta$, web$, enviado$, Solicitud As Object
    Set Solicitud = CreateObject("winhttp.winhttprequest.5.1")
    
    web = "https://docs.google.com/forms/d/e/1FAIpQLSebYPpxnvlhHnginhMPoSYeHeTvtEGjDvx5FNvt8n2WScoztw/formResponse"
    
    enviado = "entry.150481125=" & ip
    Solicitud.Open "POST", web, False
    Solicitud.setrequestheader "Content-type", "application/x-www-form-urlencoded"
    Solicitud.send (enviado)
    
    
    Exit Sub
M4ster:
    'Si es un bucle lo mejor sería no mostrar ningún mensaje
    MsgBox "Error en la descarga", vbCritical, "M4ster VBA"
End Sub

El tema de enviar información a Google Form desde Excel ya lo he explicado antes, si deseas verlo lo puedes hacer aquí

Ahora procedemos a ordenar nuestro código

Sub SaberMiIP()
    On Error GoTo M4ster
    Dim linea$, contenido$, respuesta$, web$, enviado$, solicitud As Object
    Dim i&, j&, k&, ip$
    
    URLDownloadToFile 0, "https://miip.es", ThisWorkbook.Path & "/archivo.txt", 0, 0
    Open ThisWorkbook.Path & "/archivo.txt" For Input As #1
    
    
    While Not EOF(1)
        Line Input #1, linea$
        contenido = contenido & linea
    Wend
    Close #1
    
    i = InStr(contenido, "Tu IP es ") + 9
    j = InStr(contenido, "")
    k = j - i
    ip = Mid(contenido, i, k)
    

    Set solicitud = CreateObject("winhttp.winhttprequest.5.1")
    web = "https://docs.google.com/forms/d/e/1FAIpQLSebYPpxnvlhHnginhMPoSYeHeTvtEGjDvx5FNvt8n2WScoztw/formResponse"
    enviado = "entry.150481125=" & ip
    solicitud.Open "POST", web, False
    solicitud.setrequestheader "Content-type", "application/x-www-form-urlencoded"
    solicitud.send (enviado)
    
    
    Exit Sub
M4ster:
    'Si es un bucle lo mejor sería no mostrar ningún mensaje
    MsgBox "Error en la descarga", vbCritical, "M4ster VBA"
End Sub

Descargar el archivo gratis trabajado (Contraseña tutorialesexcel.com)

Recuerda que puedes descargar todos mis archivos excel desde Repositorio Tutoriales Excel, la contraseña de todos los archivos es tutorialesexcel.com

Hemos terminado – Como saber la IP de otra persona usando Excel VBA

Muy bien hemos terminado con el tema, si te gustó el tema te agradeceré puedas compartirlo o dejarme un comentario

Cualquier consulta me la puedes realizar al correo Luisrojas@tutorialesexcel.com

Más adelante haré una publicación sobre cómo obtener más información de una PC utilizando VBA y PHP

Deja una respuesta