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

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

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

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

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

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