English Português

Para mostrar contenido dirigido por país o simplemente para conocer de que país provienen nuestros usuarios, tenemos una función en PHP que te da esta información a partir de la IP del visitante. El script es el siguiente:


//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));
Escrito por Francisco Oliveros

Soy un gran aficionado del diseño y de todo lo que el código puede comunicar. Ingeniero mecánico por profesión, pero dedicado al desarrollo web a tiempo completo.

Blog / Twitter

Artículos relacionados

Sigue leyendo consejos, tips y tutoriales para tu blog.

    Comentarios

    1. jose / Hace 10 años /

      donse se copia o pega el codigo?

      Responder a jose →
    2. [[ JoC ]] / Hace 9 años /

      oye…. sos demasiado descriptivo en tu post… que literalmente no entendi nada (entiendase el sarcasmo)

      en WP, en index pego esto o en header?

      Responder a [[ JoC ]] →
    3. Luis / Hace 7 años /

      Hola Francisco… me acabo de suscribir a tu blog, por que me pareció genial este Post, el cual voy a poner en práctica para mi propia página web.
      Gracias y un saludo

      Responder a Luis →
    4. Paul / Hace 6 años /

      Excelente amigo

      Responder a Paul →
    5. Alberto / Hace 4 años /

      Hola Francisco,

      He integrado tu código en mi aplicación, le paso la ip tal y como la sacas tú, pero getCountry($ip_address) siempre me devuelve un string vacío. Da la sensación de que no consigue conectarse a la BD del servidor que ofreces.

      Si puedes hacer algún comentario…

      PD. A algún socarrón que se anima a comentar: los cursos de iniciación al php, en la web de al lado 😉 La ignorancia es atrevida.

      Responder a Alberto →
    6. Alberto / Hace 4 años /

      …y me olvidaba.

      Muchas gracias por tu generoso esfuerzo. Me gusta tu sitio 🙂

      Responder a Alberto →
    7. bherrera / Hace 4 años /

      Cuando la versión de la ip es IPV6 te devuelve una cadena vacia… ¿Cómo resuelves esto?

      Responder a bherrera →

    Responder

    ¡Gracias por dejar tu opinión! Por favor procura que tus comentarios estén dentro tema, que no sean promocionales (spam), ilegales u ofensivos, de otro modo, serán borrados. Todos los enlaces serán moderados y la URL indicada NO será enlazada.

    Blog and Web es un blog de Blógstica. Hospedado desde 2008 en Liquid Web.

    Términos de uso - Política de privacidad