Hola amigos,
estoy viendo la manera de saber el país de un usuario dependiendo de la IP, he visto un par de formas por internet, y estoy usando una de ellas, que es la siguiente:
Código PHP:
//Obtener IP:
$_SERVER["HTTP_CLIENT_IP"]!=""?$ip=$_SERVER["HTTP_CLIENT_IP"]:$ip=$_SERVER["REMOTE_ADDR"];
//Función de obtención de IP (basado en la web de webhosting.info)
function getCountry($ip_address){
//By Marc Palau (http://www.nbsp.es)
$url = "http://ip-to-country.webhosting.info/node/view/36";
$inici = "src=/flag/?type=2&cc2=";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST,"POST");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "ip_address=$ip_address");
ob_start();
curl_exec($ch);
curl_close($ch);
$cache = ob_get_contents();
ob_end_clean();
$resto = strstr($cache,$inici);
$pais = substr($resto,strlen($inici),2);
return $pais;
}
//obtención de código de país:
$pais = strtolower(getCountry($ip));
El problema con el que me encuentro es que hay veces que
http://ip-to-country.webhosting.info/ va lento o muuuy lento y por consiguiente relentiza el proceso de carga de la web....
Sabéis de alguna otra forma mas factible, que no dependa de dicho servicio?
Imagino que la solución pasará por disponer de algún fichero donde poder consultar los datos en el propio servidor, un .dat o algo así... pero, donde encuentro ese fichero.... esa base de datos...?
Mil gracias