Comment effectuer une recherche sur IP Geolocation en PHP
Dans cet article, je vais vous présenter la meilleure façon de trouver l'emplacement physique d'une adresse IP en langage PHP (également connu sous le nom de géolocalisation IP).
Malheureusement, il n'existe pas de règles strictes pour déterminer l'emplacement physique d'une adresse IP. Au lieu de cela, les entreprises appelées IP Geolocation rassemblent de nombreux éléments d'information pour constituer une base de données précise sur la localisation des adresses IP.
Les données de géolocalisation IP se composent généralement des éléments suivants :
- les données WHOIS relatives aux domaines (qui doivent elles-mêmes être agrégées par les fournisseurs de données)
- Les registres Internet régionaux, qui distribuent de grands blocs d'adresses IP à divers fournisseurs d'accès à l'internet dans le monde entier (ISPs)
- Flux BGP provenant de grands FAI
- Informations sur le temps de latence (temps nécessaire à un paquet pour atteindre l'adresse IP de destination à partir de certains emplacements physiques)
Bien qu'il soit très compliqué et coûteux d'obtenir soi-même toutes les informations susmentionnées, il existe heureusement quelques grands fournisseurs de services qui ont déjà fait ce travail pour vous et qui proposent des données de géolocalisation IP que vous pouvez facilement utiliser.
Aujourd'hui, je vais vous montrer comment utiliser notre nouvelle bibliothèque PHP simple-geoip pour effectuer une recherche dans la base de données de géolocalisation IP et retourner la localisation physique de n'importe quelle adresse IP que vous souhaiteriez localiser.
Créez un compte IP Geolocation API Look-up
La première chose à faire pour utiliser la bibliothèque simple-geoip est de créer un compte gratuit IP Geolocation API : https://ip-geolocation.whoisxmlapi.com/signup.
IP Geolocation API est l'un des fournisseurs de services de géolocalisation d'adresses IP les plus importants et les moins chers. Vous pouvez utiliser le service IP Geolocation API pour effectuer 1 000 requêtes gratuites de géolocalisation IP chaque mois, ou vous pouvez leur payer un forfait de 27 $ par mois pour 100 000 requêtes. Des plans tarifaires supplémentaires sont disponibles ici.
Une fois que vous avez créé votre compte IP Geolocation API et que vous vous y êtes enregistré, vous devez afficher la page des produitsde votre compte et copier votre clé API - vous en aurez besoin ultérieurement pour effectuer des requêtes sur l'IP Geolocation.
Installez le pack simple-geoip
Maintenant que votre compte est configuré, la prochaine chose à faire est d'installer le paquet. Depuis la ligne de commande exécutez la commande suivante :
$ composer require whois-api/simple-geoip
Ceci téléchargera et installera la dernière version du pack simple-geoip à partir de packagist.
Effectuer une recherche IP Geolocation Lookup à l'aide simple-geoip
Maintenant que vous avez un compte et que le paquetage simple-geoip est installé, voyons un peu le code que vous pouvez exécuter pour rechercher l'adresse physique de n'importe quelle adresse IP.
Voici un petit script, `geoip.php`, qui trouvera l'emplacement physique d'une adresse IP populaire (`8.8.8.8`, l'un des principaux serveurs DNS de Google) :
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use WhoisApi\SimpleGeoip\Builders\ClientBuilder;
$builder = new ClientBuilder();
$client = $builder->build('API_KEY');
try {
echo $client->getRawData('8.8.8.8') . PHP_EOL;
echo print_r($client->get('8.8.8.8'), true) . PHP_EOL;
} catch(\Exception $e) {
echo $e->getMessage();
}
Comme vous pouvez le constater, il n'y a en réalité que trois étapes pour utiliser la bibliothèque ne comporte que trois étapes :
- Requiert le fichier autoload du compositeur.
- Importez le constructeur qui créera un client pour vous.
- Créez un objet client API à l'aide du générateur en indiquant la clé API créée lors de votre inscription au service IP Geolocation API.
- Exécutez la méthode `getRawData`, en entrant l'adresse IP que vous voulez vérifier. Vous pouvez également spécifier le format du résultat (json ou xml). Cette méthode renvoie une chaîne contenant le résultat dans différents formats (json/xml).
- Exécutez la méthode `get` en entrant l'adresse IP dont vous voulez obtenir la localisation. Cette méthode renvoie un objet ResponseModel qui contient des données bien analysées, notamment l'adresse, le code postal, le fuseau horaire, etc.
Les données renvoyées par la méthode `get` ressembleront à ceci :
Objet WhoisApi\SimpleGeoip\Models\Réponse
(
[ip] => 8.8.8.8
[location] => WhoisApi\SimpleGeoip\Models\Location Object
(
[country] => US
[region] => California
[city] => Mountain View
[lat] => 37.40599
[lng] => -122.078514
[code postal] => 94043
[timezone] => -07:00
)
)
Cet objet PHP vous dit tout ce que vous avez besoin de savoir sur la localisation physique de l'adresse IP `8.8.8.8`.
En coulisses, le service IP Geolocation API s'occupe de toutes les consultations de la base de données de géolocalisation IP et de l'agrégation des données - en obtenant les données des fournisseurs et en traitant des millions de mises à jour par jour.
Utilisez vos nouvelles données de géolocalisation IP
Maintenant que vous avez vu à quel point il est facile de trouver l'emplacement physique des adresses IP à l'aide de la bibliothèque simple-geoip, vous devriez commencer à mettre en œuvre des recherches de géolocalisation IP dans votre produit ou service !
Parmi les cas d'utilisation les plus courants des données IP Geolocation, on peut citer :
- Détecter le pays d'un utilisateur lorsqu'il visite votre site web et lui offrir une expérience personnalisée en fonction de sa localisation (langue, publicités, design, devise, etc.).
- Empêcher les utilisateurs de certaines régions d'accéder à votre site web. Par exemple, si vous êtes un fournisseur de vidéo en continu et que vous n'avez le droit de diffuser des vidéos que dans un pays spécifique, les recherches de géolocalisation IP peuvent vous fournir ces données afin que vous ne puissiez servir vos clients que dans les régions où vous pouvez légalement opérer.
- Réduction de la fraude et des risques. Si vous remarquez qu'un grand nombre de fraudes proviennent d'un endroit spécifique, le fait de bloquer temporairement les visiteurs de cet endroit peut être un moyen rapide d'atténuer la fraude et d'autres problèmes.
En analysant les adresses IP des visiteurs de votre site web, vous pouvez améliorer considérablement vos produits et services web.
Utilisez simple-geoip
En résumé, il n'est pas forcément difficile ou coûteux d'effectuer des recherches sur le site IP Geolocation . En utilisant notre nouvelle bibliothèque PHP https://github.com/whois-api-llc/php-simple-geoip et l'APIIP Geolocation vous pouvez facilement créer et gérer un produit web, même de grande taille, pour un coût très faible.
Si vous avez besoin d'effectuer des recherches à l'adresse IP Geolocation, veuillez consulter la bibliothèque simple-geoip, qui rend la recherche d'informations sur l'emplacement de l'adresse IP incroyablement simple.
Si vous avez des questions, n'hésitez pas à nous envoyer un email!