script - php obtener ip visitante
Ubicación geográfica basada en dirección IP-PHP (4)
Estamos buscando una forma rápida y precisa de obtener la ubicación de los visitantes en función de su IP.
Hemos intentado con ipinfodb.com, pero su API hizo que nuestro sitio web sufriera un retraso considerable al realizar la llamada API.
¿Qué otros servicios sugieres?
El líder del mercado en este espacio y uno que proporciona una solución empresarial es Elemento digital . Ofrecen una amplia gama de API, incluido PHP, para acceder a su servidor, que puede instalar localmente o acceder a través de un servicio web. Sus datos son de alta calidad y el rendimiento de su solución es bastante bueno. MaxMind es otra opción que recibe buenas críticas.
Para obtener la mejor precisión, querrá optar por un servicio o solución en la que obtenga actualizaciones semanales ya que esto puede cambiar bastante dentro de una red determinada. El costo dependerá de la frecuencia de las actualizaciones, la granularidad de los datos geográficos y la cantidad de campos o bases de datos adicionales que desee. Algunos proveedores ofrecen lenguaje, datos demográficos, empresa y dominio, por nombrar algunos.
Lo mejor y lo último es GeoplugginAPI es gratis y no tengo limitaciones. Estoy acostumbrado a que este sea mi sitio web http://spidersoft.in para descarga basada en ubicación. Lea más de este enlace
Obtener información de Geo-IP
Solicita un geo-IP-server (netip.de) para verificar, regresa donde se encuentra una IP (host, estado, país, ciudad).
<?php
$ip=''94.219.40.96'';
print_r(geoCheckIP($ip));
//Array ( [domain] => dslb-094-219-040-096.pools.arcor-ip.net [country] => DE - Germany [state] => Hessen [town] => Erzhausen )
//Get an array with geoip-infodata
function geoCheckIP($ip)
{
//check, if the provided ip is valid
if(!filter_var($ip, FILTER_VALIDATE_IP))
{
throw new InvalidArgumentException("IP is not valid");
}
//contact ip-server
$response=@file_get_contents(''http://www.netip.de/search?query=''.$ip);
if (empty($response))
{
throw new InvalidArgumentException("Error contacting Geo-IP-Server");
}
//Array containing all regex-patterns necessary to extract ip-geoinfo from page
$patterns=array();
$patterns["domain"] = ''#Domain: (.*?) #i'';
$patterns["country"] = ''#Country: (.*?) #i'';
$patterns["state"] = ''#State/Region: (.*?)<br#i'';
$patterns["town"] = ''#City: (.*?)<br#i'';
//Array where results will be stored
$ipInfo=array();
//check response from ipserver for above patterns
foreach ($patterns as $key => $pattern)
{
//store the result in array
$ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : ''not found'';
}
return $ipInfo;
}
?>
Nomsayn?
Si desea una base de datos, use este http://www.phpandstuff.com/articles/geoip-country-lookup-with-php
Prueba este http://ip.codehelper.io/
Aquí está el código PHP. El código almacenará automáticamente en caché su solicitud, por lo que su servidor no enviará solicitudes múltiples. Devuelve la dirección IP, el país, la ciudad y más información.
<?php
// Required Libraries
require_once("ip.codehelper.io.php");
require_once("php_fast_cache.php");
// New Class
$_ip = new ip_codehelper();
// Detect Real IP Address & Location
$real_client_ip_address = $_ip->getRealIP();
$visitor_location = $_ip->getLocation($real_client_ip_address);
// Output result
echo $visitor_location[''Country'']."";
echo "<pre>";
print_r($visitor_location);