Inicio > php > Geolocalización gratis con PHP

Geolocalización gratis con PHP

Original de aNieto2k

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

[Descargar]

Articulos relacionados:

Categories: php Tags: ,
  1. Sin comentarios aún.
  1. Sin trackbacks aún.