Como obtener el país de un visitante en PHP y Geolocalización

Manuales y Tutoriales PHP Puro Código

Para obtener el país, la ciudad, entre otros datos para nuestros proyectos web. Emplearemos el webservice de geolocalización de la página https://www.geoplugin.com/.

Mediante el número de IP del visitante podremos obtener los siguientes datos:

array (
‘geoplugin_request’ => ‘200.48.225.130’,
‘geoplugin_status’ => 200,
‘geoplugin_delay’ => ‘1ms’,
‘geoplugin_credit’ => ‘Some of the returned data includes GeoLite2 data created by MaxMind, available from https://www.maxmind.com.’,
‘geoplugin_city’ => ‘Lima’,
‘geoplugin_region’ => ‘Lima Department’,
‘geoplugin_regionCode’ => ‘LIM’,
‘geoplugin_regionName’ => ‘Lima Department’,
‘geoplugin_areaCode’ => ”,
‘geoplugin_dmaCode’ => ”,
‘geoplugin_countryCode’ => ‘PE’,
‘geoplugin_countryName’ => ‘Peru’,
‘geoplugin_inEU’ => 0,
‘geoplugin_euVATrate’ => false,
‘geoplugin_continentCode’ => ‘SA’,
‘geoplugin_continentName’ => ‘South America’,
‘geoplugin_latitude’ => ‘-10.5258’,
‘geoplugin_longitude’ => ‘-51.9655’,
‘geoplugin_locationAccuracyRadius’ => ’20’,
‘geoplugin_timezone’ => ‘America/Lima’,
‘geoplugin_currencyCode’ => ‘PEN’,
‘geoplugin_currencySymbol’ => ‘S/.’,
‘geoplugin_currencySymbol_UTF8’ => ‘S/.’,
‘geoplugin_currencyConverter’ => ‘3.6972’,
)

El código en php para obtener los datos del visitante en php (País, Departamento, tipo de cambio, etc)

CÓDIGO DE EJEMPLO 1

Este código funciona para las versiones de php 7 e inferiores y qué esté activado el file_get_contents, en caso de no funcione, puedes usar el código de ejemplo 2

$ip = $_SERVER[‘REMOTE_ADDR’];

@$dataArray = json_decode(file_get_contents(“http://www.geoplugin.net/json.gp?ip=”.$ip));

echo “<br> PAIS: “.$dataArray->geoplugin_countryName;

echo “<br> CIUDAD: “.$dataArray->geoplugin_city;

echo “<br> TIPO DE CAMBIO: “.$dataArray->geoplugin_currencyConverter;

CÓDIGO DE EJEMPLO 2

En caso no se te muestren los datos o no puedes activar la función php file_get_contents, creamos una función alternativa llamada url_get_contents que nos permite obtener los datos del servidor remoto y que funcionará como el file_get_contents. Este código está testeado en php 8.0 y superior

$ip = $_SERVER[‘REMOTE_ADDR’];

    function url_get_contents ($Url) {
        if (!function_exists(‘curl_init’)){
            die(‘CURL no está instalado’);
        }

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $Url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }

@$dataArray = json_decode(url_get_contents(“http://www.geoplugin.net/json.gp?ip=”.$ip));

echo “<br> PAIS: “.$dataArray->geoplugin_countryName;

echo “<br> CIUDAD: “.$dataArray->geoplugin_city;

echo “<br> TIPO DE CAMBIO: “.$dataArray->geoplugin_currencyConverter;

Puedes agregar o quitar datos según lo que requiera tu proyecto o tu tabla de estadísticas.

Si te sirvió la información o te genero algún error, no dudes en comentarnos para corregirlo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *