Comment localiser une adresse IP en Python

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)

Les jeunes et le numériques