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));
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