Localiser une IP en php
Résolu
Herve_be
Messages postés
1182
Date d'inscription
Statut
Membre
Dernière intervention
-
Herve_be Messages postés 1182 Date d'inscription Statut Membre Dernière intervention -
Herve_be Messages postés 1182 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je trouve des réponses sur https://forums.commentcamarche.net/forum/ mais elles ne sont pas récentes; j'en ai essayé quelques unes : soit ça ne fonctionne pas du tout, soit le nombre d'interrogations est limité, ...
Bref, comment obtenir le pays et si possible la ville correspondants à une adresse IP ?
Merci
Je trouve des réponses sur https://forums.commentcamarche.net/forum/ mais elles ne sont pas récentes; j'en ai essayé quelques unes : soit ça ne fonctionne pas du tout, soit le nombre d'interrogations est limité, ...
Bref, comment obtenir le pays et si possible la ville correspondants à une adresse IP ?
Merci
A voir également:
- Php ip server
- Ethernet n'a pas de configuration ip valide - Guide
- Télévision ip - Guide
- Cybera server - Télécharger - Divers Réseau & Wi-Fi
- Ip locale - Guide
- Ou trouver l'adresse ip - Guide
32 réponses
- 1
- 2
Suivant
Résumé de la discussion
L’objectif est d’obtenir le pays et la ville correspondants à une adresse IP via GeoIP en PHP, en évaluant différentes implémentations et bibliothèques et en s’appuyant sur des solutions discutées en ligne. Des échanges portent sur l’utilisation de la directive use pour les namespaces GeoIP2 ou GeoIP, sur les soucis liés à l’installation via Composer et sur l’erreur fatale lorsque le fichier GeoLite2-City.mmdb est absent ou illisible. D'autres échanges décrivent des stratégies pour éviter les exceptions non capturées, comme tester l’IP et conditionner l’appel au lecteur, ou utiliser une nouvelle variable plutôt que de réutiliser $IP pour stocker le résultat.
Bonjour,
Tu peux utiliser les bases GeoIP mises à disposition par Maxmind.
Pour les télécharger il faut s'inscrire sur le site de Maxmind :
https://dev.maxmind.com/geoip/geoip2/geolite2/
Pour les utiliser tu as une lib officielle, tout est expliqué avec des exemples :
https://github.com/maxmind/GeoIP2-php
Un rapide exemple fonctionnel, à adapter :
(j'utilise les ternaires de PHP7, à transformer en ternaire classique sur les anciennes versions)
Résultat :
Tu peux utiliser les bases GeoIP mises à disposition par Maxmind.
Pour les télécharger il faut s'inscrire sur le site de Maxmind :
https://dev.maxmind.com/geoip/geoip2/geolite2/
Pour les utiliser tu as une lib officielle, tout est expliqué avec des exemples :
https://github.com/maxmind/GeoIP2-php
Un rapide exemple fonctionnel, à adapter :
(j'utilise les ternaires de PHP7, à transformer en ternaire classique sur les anciennes versions)
<?php
// dépendances
require_once 'vendor/autoload.php';
use GeoIp2\Database\Reader;
// choix de la base, GeoLite2-City contient les villes (City)
// sinon Geolite2-Country.mmdb suffit pour les pays
$reader = new Reader('GeoLite2-City.mmdb');
// choix d'une IP
$record = $reader->city("195.248.251.112");
print(
// country->names['code-pays'], nom localisé
($record->country->names['fr'] ?? "Pays introuvable") .
'<br/>' .
// idem, peut retourner NULL, j'anticipe avec une ternaire
($record->city->names['fr'] ?? "Ville introuvable")
);
?>
Résultat :
France
Paris
- 1
- 2
Suivant



