Hace unos días que se viene hablando de iplocationtools, una aplicación gratuita que nos permite obtener datos sobre la geolocalización de una IP(en mi caso me ha ubicado en otro pais… así que no me fio mucho).
Inicialmente la aplicación está pensada para devolvernos los datos mediante una petición GET, así que unas pocas líneas de código podrían mostrarnos una serie de datos muy interesantes de nuestros usuarios.
<?php
function get_ip_location($ip, $format="xml") {
$formats_allowed = array("json", "xml", "raw");
$query_url = "http://iplocationtools.com/ip_query.php?ip=";
if(!in_array($format, $formats_allowed)) {
$format = "xml";
}
$query_url = $query_url . "{$ip}&output={$format}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $query_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
return curl_exec($ch);
}
?>
Modo de empleo
Este script, nos permite obtener los datos en 3 formatos diferentes, dependiendo del valor que le pasemos como segundo parámetro a la función get_ip_location()
.
// XML
$location_data = get_ip_location("209.85.153.104");
print_r($location_data);
// Respuesta
<Response>
<Ip>209.85.153.104</Ip>
<Status>OK</Status>
<CountryCode>US</CountryCode>
<CountryName>United States</CountryName>
<RegionCode>06</RegionCode>
<RegionName>California</RegionName>
<City>Mountain View</City>
<ZipPostalCode>94043</ZipPostalCode>
<Latitude>37.4192</Latitude>
<Longitude>-122.057</Longitude>
</Response>
//JSON
$location_data = get_ip_location("209.85.153.104", "json");
print_r($location_data);
//Respuesta
{
"Ip" : "209.85.153.104",
"Status" : "OK",
"CountryCode" : "US",
"CountryName" : "United States",
"RegionCode" : "06",
"RegionName" : "California",
"City" : "Mountain View",
"ZipPostalCode" : "94043",
"Latitude" : "37.4192",
"Longitude" : "-122.057",
}
// RAW
$location_data = get_ip_location("209.85.153.104", "raw");
print_r($location_data);
// Respuesta
209.85.153.104,OK,US,United States,06,California,Mountain View,94043,37.4192,-122.057
12 comentarios, 1 referencias
+
#