Underc0de

Programación Web => Back-end => Mensaje iniciado por: Polsaker en Mayo 30, 2015, 01:09:34 AM

Título: Mostrando la ubicación de una dirección IP en un mapa en tan solo tres líneas.
Publicado por: Polsaker en Mayo 30, 2015, 01:09:34 AM
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
Título: Re:Mostrando la ubicación de una dirección IP en un mapa en tan solo tres líneas.
Publicado por: Yavi en Mayo 30, 2015, 01:35:39 AM
Muy buen aporte, aunque no se porque a mi me sale que la imagen tiene errores cuando intento ejecutar el ejemplo de la  "firma"  :-\
Título: Re:Mostrando la ubicación de una dirección IP en un mapa en tan solo tres líneas.
Publicado por: Polsaker en Mayo 30, 2015, 01:43:06 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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.
Título: Re:Mostrando la ubicación de una dirección IP en un mapa en tan solo tres líneas.
Publicado por: arthusu en Mayo 30, 2015, 02:42:39 AM
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 (https://underc0de.org/foro/index.php?action=profile;u=20051) el me lo comento hace un tiempo, saludos!
Título: Re:Mostrando la ubicación de una dirección IP en un mapa en tan solo tres líneas.
Publicado por: Yavi en Mayo 30, 2015, 02:10:52 PM
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}");
?>