Comment localiser une adresse IP en Python

La localisation d’adresse IP permet de déterminer des informations géographiques et techniques associées à une adresse IP. Ce guide vous présentera plusieurs méthodes pour réaliser cette tâche en Python.
Prérequis pour la localisation d’une adresse IP en Python
Sachez qu’il vous faudra plusieurs choses pour y parvenir, à commencer par disposer de Python 3.7 ou supérieur, d’une connexion internet et de connaissances de base en programmation Python.
Les méthodes de localisation d’adresse IP
1. Utilisation de la bibliothèque ipapi
Une installation simple via pip sera ici nécéssaire, cela permet de fournir des informations détaillées sur la localisation, et comme vu précédemment, cela nécessite une connexion internet
pythonCopierimport requests
def localiser_ip(adresse_ip):
try:
response = requests.get(f’https://ipapi.co/{adresse_ip}/json/’)
data = response.json()
return {
‘ville’: data.get(‘city’),
‘pays’: data.get(‘country_name’),
‘région’: data.get(‘region’),
‘latitude’: data.get(‘latitude’),
‘longitude’: data.get(‘longitude’)
}
except Exception as e:
return f »Erreur de localisation : {e} »
2. Méthode avec geoip2
Cela passe par une bibliothèque professionnelle pour la géolocalisation et nécessite un téléchargement préalable de base de données, cela permet une précision élevée des informations :
pythonCopierimport geoip2.database
def localiser_ip_geoip(adresse_ip):
try:
reader = geoip2.database.Reader(‘chemin/vers/base/données/GeoLite2-City.mmdb’)
response = reader.city(adresse_ip)
return {
‘pays’: response.country.name,
‘ville’: response.city.name,
‘latitude’: response.location.latitude,
‘longitude’: response.location.longitude
}
except Exception as e:
return f »Erreur de localisation : {e} »
3. Utilisation de l’API IPInfo
Il s’agit ici d’un service en ligne gratuit avec API REST, avec des informations détaillées et fiables et cela nécessite une clé API pour des requêtes avancées :
pythonCopierimport requests
def localiser_ip_ipinfo(adresse_ip, api_key=None):
url = f’https://ipinfo.io/{adresse_ip}/json’
headers = {‘Authorization’: f’Bearer {api_key}’ } if api_key else {}
try:
response = requests.get(url, headers=headers)
data = response.json()
return {
‘ville’: data.get(‘city’),
‘pays’: data.get(‘country’),
‘région’: data.get(‘region’),
‘coordonnées’: data.get(‘loc’)
}
except Exception as e:
return f »Erreur de localisation : {e} »
Les considérations éthiques et légales
La première chose est de respecter la confidentialité des données, sans compter le fait d’obtenir les autorisations nécessaires et d’utiliser ces méthodes uniquement pour des fins légitimes. Enfin, informer les utilisateurs de la collecte de données est indispensable.
Les bonnes pratiques
Il y a de nombreuses bonnes pratiques, à commencer par gérer les exceptions, utiliser des API avec des limites de requêtes, stocker en cache les résultats si possibles et vérifier la validité des adresses IP
Les limites et précautions
Evidemment, ce n’est pas quelque chose de magique, et vous pouvez tout d’abord vous attendre a une localisation approximative, une possibilité de VPN ou proxy, des variations de précision selon les sources et une mise à jour régulière des bases de données.
Exemple complet d’utilisation
pythonCopierip_a_localiser = ‘8.8.8.8’
resultat = localiser_ip(ip_a_localiser)
print(resultat)