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
<?php
# Obtenemos la ip del visitante
$ip = $_SERVER[‘REMOTE_ADDR’];
# Medienta file_get_contents obtenemos los datos del webservice
@$dataArray = json_decode(file_get_contents(«http://www.geoplugin.net/json.gp?ip=».$ip));
# Mostramos / Guardamos los datos del visitante (Pais y Ciudad del visitante)
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
<?php
# Obtenemos la ip del visitante
$ip = $_SERVER[‘REMOTE_ADDR’];
# Función url_get_contents, utiliza curl_init para traer los datos de un servidor remoto
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;
}
# En vez de utilizar file_get_contents usamos nuestra función alternativa url_get_contents para obtene los datos del webservice
@$dataArray = json_decode(url_get_contents(«http://www.geoplugin.net/json.gp?ip=».$ip));
# Mostramos / Guardamos los datos del visitante (Pais y Ciudad del visitante)
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.