Comment Suivre la Localisation d’une Adresse IP avec Python

Apprenez à géolocaliser une adresse IP ou un nom de domaine à l’aide de la bibliothèque Python nommée Ip2geotools. Cet article vous guide à travers les étapes nécessaires pour déterminer l’emplacement physique d’une adresse IP, qu’il s’agisse d’une adresse IPv4 ou IPv6. Vous découvrirez également comment utiliser cette bibliothèque pour des cas d’utilisation courants comme le blocage d’adresses IP basées sur la localisation ou le calcul de la distance entre deux adresses IP.

1. Installation des Bibliothèques Nécessaires

$ pip install ip2geotools

Ensuite, importez les bibliothèques nécessaires dans votre script Python :

import socket
import requests
from ip2geotools.databases.noncommercial import DbIpCity
from geopy.distance import distance

2. Extraction de la Localisation à Partir d’une Adresse IP

Voici une fonction pour afficher les détails d’une adresse IP, tels que la ville, le pays, et les coordonnées géographiques.

def afficherDetails(ip):
res = DbIpCity.get(ip, api_key="free")
print(f"Adresse IP: {res.ip_address}")
print(f"Localisation: {res.city}, {res.region}, {res.country}")
print(f"Coordonnées: (Lat: {res.latitude}, Lng: {res.longitude})")

Pour obtenir la localisation à partir d’une adresse IP :

ip_add = input("Entrez l'adresse IP : ")  # Par exemple, 198.35.26.96
afficherDetails(ip_add)

Exemple de sortie :

Adresse IP : 198.35.26.96
Localisation : San Jose, Californie, États-Unis
Coordonnées : (Lat : 37.3361663, Lng : -121.890591)

3. Extraction de la Localisation à Partir d’une URL

Pour obtenir l’adresse IP d’un nom de domaine et ensuite déterminer sa localisation :

url = input("Entrez l'URL : ")  # Par exemple, www.youtube.com
ip_add = socket.gethostbyname(url)
afficherDetails(ip_add)

Exemple de sortie :

Entrez l'URL : www.youtube.com
Adresse IP : 173.194.214.91
Localisation : Mountain View, Californie, États-Unis
Coordonnées : (Lat : 37.3893889, Lng : -122.0832101)

Quelques Cas d’Utilisation Communs

1. Blocage des Adresses IP Basées sur leur Localisation

Vous pouvez bloquer les adresses IP d’un pays spécifique en utilisant le code suivant :

def estPaysBloque(ip_address):
pays_bloques = ["Chine", "Canada", "Inde"]
location = DbIpCity.get(ip_address)
return location.country in pays_bloques

ip_add = input("Entrez l'adresse IP : ")
if estPaysBloque(ip_add):
print(f"L'adresse IP : {ip_add} est bloquée")
else:
print(f"L'adresse IP : {ip_add} est autorisée")

Exemple de sortie :

Entrez l'adresse IP : 198.35.26.96
L'adresse IP : 198.35.26.96 est autorisée

2. Calcul de la Distance entre Deux Adresses IP

Vous pouvez calculer la distance (en km) entre deux localisations d’adresses IP comme suit :

def calculerDistance(ip1, ip2):
res1 = DbIpCity.get(ip1)
res2 = DbIpCity.get(ip2)
lat1, lon1 = res1.latitude, res1.longitude
lat2, lon2 = res2.latitude, res2.longitude
return distance((lat1, lon1), (lat2, lon2)).km

# Entrez deux adresses IP
ip_add_1 = input("1ère adresse IP : ")
ip_add_2 = input("2ème adresse IP : ")
dist = calculerDistance(ip_add_1, ip_add_2)
print(f"La distance entre elles est de {str(dist)} km")

Exemple de sortie :

Entrez la 1ère adresse IP : 198.35.26.96
Entrez la 2ème adresse IP : 220.158.144.59
La distance entre elles est de 12790.62320788363 km

3. Calcul de la Distance entre Votre Localisation et le Serveur

Pour calculer la distance entre votre localisation actuelle et l’emplacement d’une adresse IP donnée :

def obtenirDistanceDepuisLocalisation(ip, lat, lon):
res = DbIpCity.get(ip)
ip_lat, ip_lon = res.latitude, res.longitude
return distance((ip_lat, ip_lon), (lat, lon)).km

ip_serveur = input("Adresse IP du serveur : ")
latitude = float(input("Votre Latitude : "))
longitude = float(input("Votre Longitude : "))

dist = obtenirDistanceDepuisLocalisation(ip_serveur, latitude, longitude)
print(f"La distance entre le serveur et votre localisation est de {str(dist)} km")

Exemple de sortie :

Entrez l'adresse IP du serveur : 208.80.152.201
Entrez votre localisation actuelle (Latitude) : 26.4710
Entrez votre localisation actuelle (Longitude) : 73.1134
La distance entre le serveur et votre localisation est de 12183.275099919923 km

Utilisation de la géolocalisation IP pour le développement web

La géolocalisation peut être utilisée pour de nombreuses choses dans le développement de sites web. Les cas d’utilisation les plus courants incluent la détermination de la localisation d’un utilisateur à des fins d’authentification, l’affichage de contenu localisé, ou la présentation à un utilisateur de sa localisation actuelle.

Les applications web basées sur la géolocalisation incluent des services de cartographie comme Google Maps et Waze, des applications de localisation d’entreprises et de critiques comme Yelp, des services de covoiturage comme Uber, des services de livraison comme Doordash, et bien d’autres. Toute application, site web ou campagne marketing qui a besoin de déterminer la localisation d’un utilisateur utilise probablement la géolocalisation pour le faire.

Mais la géolocalisation est également utile de bien d’autres manières. Par exemple, un site web bancaire pourrait vérifier la localisation d’un utilisateur lorsqu’il tente de se connecter et de consulter son compte. Si la requête provient d’un endroit inattendu, comme un autre pays, la banque peut bloquer l’appareil pour l’accès à des informations sensibles.

En outre, la géolocalisation est utilisée dans le géociblage. Le géociblage est une méthode pour les annonceurs de cibler précisément la localisation d’un utilisateur et de lui montrer les publicités les plus pertinentes. Le géociblage peut également être utilisé pour offrir aux utilisateurs du contenu dans leur langue, ou pour afficher les prix dans leur devise.

Bonnes pratiques pour la géolocalisation IP

Lorsque vous effectuez une recherche d’adresse IP avec Python, il est important de respecter certaines normes et bonnes pratiques pour protéger les données personnelles de vos utilisateurs.

  1. Assurez la confidentialité et la conformité des données – votre site ou application doit respecter les lois sur la confidentialité et la conformité des données, y compris les lois RGPD. Votre application ou site doit afficher une politique de confidentialité décrivant exactement quelles données utilisateur sont collectées et comment elles sont utilisées.
  2. Précision et exactitude des données de géolocalisation IP – les données de géolocalisation obtenues par les adresses IP ne sont pas très précises. Vous pouvez localiser les utilisateurs uniquement à l’intérieur des limites de leur ville. Elles ne peuvent pas être utilisées pour trouver une adresse de rue, un numéro de téléphone, le nom de l’utilisateur, son sexe, ou toute autre information identifiable.
  3. Mise à jour et maintenance des données de géolocalisation IP – si vous stockez des informations de localisation des utilisateurs, assurez-vous qu’elles sont toujours à jour et précises. Il peut être plus compliqué que cela n’en vaut la peine de stocker ces informations, car les utilisateurs ont tendance à se déplacer beaucoup, et faire des requêtes de géolocalisation IP est tellement facile qu’il est généralement inutile de stocker ces données.

Limitations et défis de la géolocalisation IP

Il existe certaines limitations à l’utilisation d’une adresse IP pour rechercher des informations de localisation.

Comme mentionné précédemment, les localisations d’adresses IP sont intrinsèquement inexactes – un appareil ne peut être localisé qu’à l’intérieur d’une ville au mieux. Les données de localisation IP fournissent une précision de 55 à 80 % pour une région ou un état, et jusqu’à 75 % de précision pour leur ville.

Les données de géolocalisation IP sont fournies avec un rayon d’exactitude. La localisation géographique réelle d’une adresse IP se situe à l’intérieur de ce rayon.

Les services de géolocalisation IP ont tendance à mieux fonctionner dans les grandes villes que dans les plus petites et les zones rurales.

Enfin, si les utilisateurs utilisent des VPN ou d’autres types de services qui masquent leur adresse IP réelle, la géolocalisation IP devient inutile.

Conclusion

Il existe plusieurs avantages à suivre la localisation d’une adresse IP, comme la personnalisation des publicités en fonction de la localisation ou la détection de fraude. N’hésitez pas à explorer d’autres possibilités offertes par la bibliothèque ip2geotools pour améliorer vos projets.

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *