online - geolocation php
¿Cómo puedo recuperar la región y la ciudad desde una ip? He encontrado este servicio: http://api.hostip.info/?ip=xyz.qwe.rty
Pero no me da información precisa como esta: http://www.ipaddresslocation.org/
¿Conoces algún servicio gratuito? Necesito recuperar esta información con un script php, pero no instalaría una biblioteca externa.
Muchas gracias
Puedes probar esto.
$ tags = get_meta_tags (''http://www.geobytes.com/IpLocator.htm?GetLocation&template=php3.txt&IpAddress=94.55.180.139''); imprimir $ tags [''ciudad'']; // Nombre de la ciudad
Si desea recuperar la ciudad de una IP a través de http://www.ipaddresslocation.org/ , siga este tutorial: https://www.facebook.com/Websitedevelopar/posts/468049883274297 Pero cambia el RegEx con esta cadena:
/<i>([a-z/s]+)/:[<//i>/s]+<b>(.*)<//b>/im
ADIÓS
http://ipinfo.io , mi servicio, le proporciona ciudad, país y otra información relacionada con una IP:
$ curl ipinfo.io/8.8.8.8
{
"ip": "8.8.8.8",
"hostname": "google-public-dns-a.google.com",
"loc": "37.385999999999996,-122.0838",
"org": "AS15169 Google Inc.",
"city": "Mountain View",
"region": "CA",
"country": "US",
"phone": 650
}
Aquí hay un ejemplo de PHP:
$ip = $_SERVER[''REMOTE_ADDR''];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));
echo $details->city; // -> "Mountain View"
API de geolocalización gratuita http://ip-api.com/docs/
Puede obtener información sobre su dirección IP, país, región, ciudad, ISP, organización.
Formatos de respuesta y ejemplos: XML, JSON, CSV, PHP.
Límites de uso: nuestro sistema prohibirá automáticamente cualquier dirección IP que realice más de 240 solicitudes por minuto.
Ejemplo de PHP
$ip = $_SERVER[''REMOTE_ADDR''];
$query = @unserialize(file_get_contents(''http://ip-api.com/php/''.$ip));
if($query && $query[''status''] == ''success'') {
echo ''My IP: ''.$query[''query''].'', ''.$query[''isp''].'', ''.$query[''org''].'', ''.$query [''country''].'', ''.$query[''regionName''].'', ''.$query[''city''].''!'';
} else {
echo ''Unable to get location'';
}