Lors du développement de sites Web ou d'applications modernes, l'obtention d'informations géographiques et d'appareils de l'utilisateur est très importante pour fournir une expérience personnalisée. Le langage PHP fournit de nombreux moyens techniques pour mettre en œuvre cette fonction, parmi laquelle la technologie GEOIP et la fonction GET_Client_version sont des choix très courants. En combinant ces deux technologies, nous pouvons facilement obtenir l'adresse IP de l'utilisateur, analyser l'emplacement géographique de l'utilisateur et identifier les informations de l'appareil de l'utilisateur. Cet article vous mènera étape par étape pour comprendre comment y parvenir grâce à ces technologies.
GEOIP Technology est une technologie qui localise l'emplacement géographique des utilisateurs via des adresses IP. En comparant l'adresse IP avec la géodatabase, nous pouvons connaître l'emplacement approximatif de l'utilisateur, comme le pays, la province, la ville et encore plus précis au code postal. Les services GEOIP sont généralement fournis par des bibliothèques ou des API tierces. Les bibliothèques GEOIP communes incluent GEOIP2 et IPStack de Maxmind.
get_client_version est une fonction personnalisée qui est généralement utilisée pour obtenir les informations de version du client. En PHP, l'obtention d'informations sur le périphérique utilisateur (telles que le système d'exploitation, le navigateur, le type de périphérique, etc.) nécessite généralement de s'appuyer sur le champ utilisateur-agent dans l'en-tête de demande HTTP. En analysant ce champ, nous pouvons déterminer le système d'exploitation, le type de navigateur et d'autres informations utilisées par l'utilisateur. Combiné avec la technologie GEOIP, nous pouvons obtenir l'emplacement géographique de l'utilisateur et déduire les informations de leur appareil.
Ci-dessous, nous utiliserons un exemple de PHP simple pour montrer comment utiliser les fonctions GEOIP et GET_Client_version pour identifier la région de l'utilisateur et les informations de l'appareil.
Tout d'abord, assurez-vous que la bibliothèque GEOIP soit installée. Dans cet exemple, nous utiliserons la base de données GEOIP2 de Maxmind. Vous pouvez utiliser Composer pour installer la bibliothèque GEOIP2 de Maxmind:
composer require geoip2/geoip2
Obtenir l'adresse IP du client est très simple. Il peut généralement être obtenu par $ _Server ['Remote_addr'] :
$ipAddress = $_SERVER['REMOTE_ADDR'];
Ensuite, nous utilisons la bibliothèque GEOIP2 pour obtenir l'emplacement géographique de l'adresse IP:
require 'vendor/autoload.php';
use GeoIp2\Database\Reader;
// GeoIP2Chemin de base de données
$reader = new Reader('/path/to/GeoLite2-City.mmdb');
// Obtenez l'utilisateurIPadresse
$ipAddress = $_SERVER['REMOTE_ADDR'];
// utiliserGeoIP2Informations sur la localisation géographique de l'utilisateur de la requête de la base de données
$record = $reader->city($ipAddress);
// Sortie des informations de localisation géographique de l'utilisateur
echo "Country: " . $record->country->name . "<br>";
echo "City: " . $record->city->name . "<br>";
echo "Latitude: " . $record->location->latitude . "<br>";
echo "Longitude: " . $record->location->longitude . "<br>";
Dans cet exemple de code, nous obtenons les informations du pays, de la ville, de la latitude et de la longitude de l'utilisateur via la bibliothèque GEOIP2. Ces informations peuvent nous aider à identifier l'emplacement géographique de l'utilisateur.
Afin d'obtenir des informations de périphérique de l'utilisateur, nous pouvons utiliser la fonction Get_Client_version , qui analyse le champ utilisateur-agent pour obtenir des informations pertinentes sur le périphérique client. Nous pouvons créer une fonction simple pour analyser ce champ:
function get_client_version() {
$userAgent = $_SERVER['HTTP_USER_AGENT'];
// Vérifiez le système d'exploitation
if (strpos($userAgent, 'Windows NT') !== false) {
$os = 'Windows';
} elseif (strpos($userAgent, 'Mac OS X') !== false) {
$os = 'Mac OS';
} elseif (strpos($userAgent, 'Linux') !== false) {
$os = 'Linux';
} else {
$os = 'Unknown OS';
}
// Vérifiez le navigateur
if (strpos($userAgent, 'Chrome') !== false) {
$browser = 'Chrome';
} elseif (strpos($userAgent, 'Firefox') !== false) {
$browser = 'Firefox';
} elseif (strpos($userAgent, 'Safari') !== false) {
$browser = 'Safari';
} else {
$browser = 'Unknown Browser';
}
// Informations sur le périphérique de sortie
return [
'os' => $os,
'browser' => $browser,
];
}
// Obtenir des informations sur l'appareil client
$clientInfo = get_client_version();
// Informations sur le périphérique de sortie
echo "Operating System: " . $clientInfo['os'] . "<br>";
echo "Browser: " . $clientInfo['browser'] . "<br>";
Dans cet exemple, nous obtenons des informations sur le système d'exploitation et le navigateur de l'utilisateur en analysant l'agent utilisateur . Ces informations nous aident à comprendre l'environnement de l'appareil de l'utilisateur.
En combinant des informations sur la géolocalisation et des informations sur l'appareil, nous pouvons créer un exemple plus complet:
require 'vendor/autoload.php';
use GeoIp2\Database\Reader;
$reader = new Reader('/path/to/GeoLite2-City.mmdb');
$ipAddress = $_SERVER['REMOTE_ADDR'];
$record = $reader->city($ipAddress);
// Obtenir des informations sur l'appareil
function get_client_version() {
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($userAgent, 'Windows NT') !== false) {
$os = 'Windows';
} elseif (strpos($userAgent, 'Mac OS X') !== false) {
$os = 'Mac OS';
} elseif (strpos($userAgent, 'Linux') !== false) {
$os = 'Linux';
} else {
$os = 'Unknown OS';
}
if (strpos($userAgent, 'Chrome') !== false) {
$browser = 'Chrome';
} elseif (strpos($userAgent, 'Firefox') !== false) {
$browser = 'Firefox';
} elseif (strpos($userAgent, 'Safari') !== false) {
$browser = 'Safari';
} else {
$browser = 'Unknown Browser';
}
return [
'os' => $os,
'browser' => $browser,
];
}
$clientInfo = get_client_version();
// Sortie d'emplacement géographique et d'informations sur l'appareil
echo "Country: " . $record->country->name . "<br>";
echo "City: " . $record->city->name . "<br>";
echo "Latitude: " . $record->location->latitude . "<br>";
echo "Longitude: " . $record->location->longitude . "<br>";
echo "Operating System: " . $clientInfo['os'] . "<br>";
echo "Browser: " . $clientInfo['browser'] . "<br>";
Cet exemple complet montrera l'emplacement géographique de l'utilisateur et les informations sur l'appareil.
En combinant la fonction Get_Client_version et la technologie GEOIP, nous pouvons obtenir l'emplacement géographique de l'utilisateur et les informations de l'appareil. Cela offre une expérience utilisateur plus personnalisée pour le site Web ou l'application, et peut fournir du contenu personnalisé en fonction de différentes régions et appareils. Avec l'exemple de code ci-dessus, vous pouvez facilement implémenter cette fonctionnalité et les mettre à l'échelle en fonction de vos besoins.