Mostrando la ubicación de una dirección IP en un mapa en tan solo tres líneas.

  • 4 Respuestas
  • 2694 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Polsaker

  • *
  • Underc0der
  • Mensajes: 33
  • Actividad:
    0%
  • Reputación 1
  • We do what we must because we can
    • Ver Perfil
Buenas, esta vez vengo a dejarles otro de los trozos de código que suelo utilizar yo en algunas páginas.
Este código muestra un mapa con la ubicación de una IP utilizando la API de mapas estáticos de Google e ip-api.com para obtener la información de la geolocalización. Solo hay que pasarle el parámetro ip vía GET al script.

Código: (php) [Seleccionar]
<?php
$ipinfo 
json_decode(file_get_contents("http://ip-api.com/json/" $_GET['ip']));
$latlong $ipinfo->lat "," $ipinfo->lon;

echo 
"<img src=\"https://maps.googleapis.com/maps/api/staticmap?center={$latlong}&zoom=13&size=600x300&markers=color:red%7Clabel:IP%7C{$latlong}\"/>";
?>

También, para incluirlo de forma mas sencilla en páginas (este, por ejemplo, se podría utilizar en una firma del foro  ::) )

Código: (php) [Seleccionar]
<?php
$ipinfo 
json_decode(file_get_contents("http://ip-api.com/json/" $_GET['ip']));
$latlong $ipinfo->lat "," $ipinfo->lon;
header('Content-Type: image/png'); 
echo 
file_get_contents("https://maps.googleapis.com/maps/api/staticmap?center={$latlong}&zoom=13&size=600x300&markers=color:red%7Clabel:IP%7C{$latlong}");
?>

Por supuesto, pueden cambiar el tamaño del mapa alterando el parámetro size que se envía a la API de Google.

Saludos,
Polsaker
« Última modificación: Mayo 30, 2015, 02:31:49 am por WhiZ »

Desconectado Yavi

  • *
  • Underc0der
  • Mensajes: 166
  • Actividad:
    0%
  • Reputación 0
  • Es como una pagina redirigiendose a si misma
  • Skype: [email protected]
  • Twitter: @YaviOS64
    • Ver Perfil
    • Email
Muy buen aporte, aunque no se porque a mi me sale que la imagen tiene errores cuando intento ejecutar el ejemplo de la  "firma"  :-\
"Eso es lo bueno de internet. De que sirve internet si chateas con tus vecinos??? para eso te sacas unas sillas al fresco y hablais y jugais a las cartas". @windux

Desconectado Polsaker

  • *
  • Underc0der
  • Mensajes: 33
  • Actividad:
    0%
  • Reputación 1
  • We do what we must because we can
    • Ver Perfil
Muy buen aporte, aunque no se porque a mi me sale que la imagen tiene errores cuando intento ejecutar el ejemplo de la  "firma"  :-\
A mi me funciona. ¿Le pasaste el parámetro "ip" vía GET? Puedes probar comentando la línea cuatro (la que tiene la función header) para poder ver el error.

Desconectado arthusu

  • *
  • Ex-Staff
  • *****
  • Mensajes: 551
  • Actividad:
    0%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
  • Skype: arthusuxD
    • Ver Perfil
    • Arthusu BLOG
Muy bueno polsaker +1, ya conocia esa pagina, tambien habia una base de datos con ips de latitude y longitude: http://www.ip2location.com/?rid=1094 gracias a @WHK el me lo comento hace un tiempo, saludos!
Pentest - Hacking & Security Services

Contact me: [email protected]

Desconectado Yavi

  • *
  • Underc0der
  • Mensajes: 166
  • Actividad:
    0%
  • Reputación 0
  • Es como una pagina redirigiendose a si misma
  • Skype: [email protected]
  • Twitter: @YaviOS64
    • Ver Perfil
    • Email
Citar
Muy buen aporte, aunque no se porque a mi me sale que la imagen tiene errores cuando intento ejecutar el ejemplo de la  "firma"  :-\

Aunque se ha notado que si se intentas obtener el contenido del mapa de Google usando HTTPS desde una página http te lanza error. entonces mi código modificado seria algo así:  8) :P

Código: (php) [Seleccionar]
<?php
$ipinfo 
json_decode(file_get_contents("http://ip-api.com/json/" $_REQUEST['ip']));
$latlong $ipinfo->lat "," $ipinfo->lon;
header('Content-Type: image/png'); 
echo 
file_get_contents("http://maps.googleapis.com/maps/api/staticmap?center={$latlong}&zoom=13&size=600x300&markers=color:red%7Clabel:IP%7C{$latlong}");
?>

"Eso es lo bueno de internet. De que sirve internet si chateas con tus vecinos??? para eso te sacas unas sillas al fresco y hablais y jugais a las cartas". @windux