Extraer IP pública
Para extraer la ip pública desde el cliente con el que acceden los usuarios, se utiliza la api de la página web, http://checkip.amazonaws.com/, se accede a la IP con la función PHP file_get_contents para extraer la cadena de texto de la IP, esta IP se guarda en la variable $ip_address
Extraer IP de red LAN
Para extraer la IP local, la IP de red LAN, se utiliza la función getHostByName(php_uname(‘n’)) he inmediatamente se imprime el valor extraído con el comando echo
Saber el navegador desde donde se está accediendo
Este proceso se puede hacer con el comando $_SERVER[‘HTTP_USER_AGENT’] que en mi caso me muestra lo siguiente si lo imprimo desde PHP con un echo:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36
Básicamente lo que se hace es comparar los USER ANGENT, con sus palabras claves, por ejemplo para Chrome, se valida con el siguiente tramo de código:
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false)
return 'Navegador: Google Chrome';
Script PHP para saber el país, departamento y ciudad del usuario final desde el navegador
Para validar la ubicación del usuario se utiliza una api que puedes verificar en el siguiente enlace:
Se puede extraer la ubicación, de ciudad, departamento, país entre otro datos, armando la URL agregando una diagonal y la IP pública desde donde se realiza la conexión, más otra diagonal y la palabra geo, de la siguiente forma por ejemplo:
http://ipinfo.io/191.98.43.21/geo
Lo que se puede hacer es utilizar la función file_get_contents para extraer la información en un json y asignarle variables a cada valor desde PHP con el siguiente tramo de código:
$PublicIP = "191.95.53.31";
//$PublicIP = $ip_address;
$json = file_get_contents("http://ipinfo.io/$PublicIP/geo");
//Breaks down the JSON object into an array
$json = json_decode($json, true);
//This variable is the visitor's county
$country = $json['country'];
//This variable is the visitor's region
$region = $json['region'];
//This variable is the visitor's city
$city = $json['city'];
echo '</br> País: ' . $country;
echo '</br> Departamento: ' . $region;
echo '</br> Ciudad: ' . $city;
Puesta a punto del Script PHP para extraer la IP pública desde el navegador en un servidor local
Aplicaciones Previas
Descarga Aplicación de GitHub
Configuración de aplicación del script PHP para su funcionamiento en tu ordenador
C:\xampp\htdocs
git clone https://github.com/configuroweb/extraer-ip-publica.git
http://localhost/extraer-ip-publica/