Como detectar un país por dirección IP

Para detectar el país de un usuario mediante su dirección IP, utiliza este código en PHP:

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
   $ip = $_SERVER['HTTP_CLIENT_IP'];}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
   $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
   $ip = $_SERVER['REMOTE_ADDR'];
}
   $url = "http://api.wipmania.com/".$ip;
   $country = file_get_contents($url);
   echo $country;

La variable $country será el país del usuario, en código ISO. Descarga aquí la lista completa de países y sus códigos ISO en Excel. Mediante tu dirección IP, sabemos que...

Escribe tu comentario comment4 Comentarios
  1. 2018-04-15 Adrian Rodriguez

    Buenas noches, tengo una página web hecha en español e inglés, (las dos por separado, cada una con su índex y carpetas de recursos) y quiero que cuando el internauta se meta en el dominio se muestre solamente una se ellas según el idioma del país en qué está. Cómo lo puedo hacer?

    • 2018-04-15 Daniel Piñero

      Hola. Si usas PHP, mi solución sería crear un array de países de habla hispana con código ISO. Ej. $array = Array(\"ES\", \"VE\", \"CO\", etc.) Mediante in_array, localizas si el ISO del país del usuario está en ese array. En ese caso, diriges al sitio en español; si no, al sitio en inglés.

    2017-07-17 chinea

    Hola, primero deseo darles las gracias por el articulo. me funciona 99% bien. el resultado que me da es el CU en este caso pero el nombre del país Cuba. tengo que hacer algo para que me muestre el nombre y no las iniciales. saludos Chinea

    • 2017-07-17 Daniel Piñero

      Hola Chinea. En este caso, lo único que se me ocurre es que utilices un condicional en PHP, de modo que si el nombre por mostrar es \"CU\", lo sustituyas por \"Cuba\".

mode_editEscribe tu comentario

menu
menu