×

Localiser une adresse IP avec Python et ses bibliothèques

localiser adresse ip python
5/5 - (9 votes)

Tu veux savoir comment localiser une adresse IP avec Python ? T’es au bon endroit ! Python, c’est un outil super puissant pour ça et pas que ! Après t’avoir partagé les 10 codes indispensables en Python, on va voir ensemble comment utiliser des bibliothèques Python pour obtenir des infos précises sur une adresse IP.

 

Les Bibliothèques Python pour la Géolocalisation IP

Python a plusieurs bibliothèques pour t’aider à localiser une adresse IP. Les plus connues sont GeoIP2 et pygeoip. Ces outils te permettent d’obtenir des infos comme le pays, la ville, ou même l’adresse précise associés à une IP.

 

GeoIP2

GeoIP2, c’est le top pour la géolocalisation IP avec Python. Elle utilise la base de données de MaxMind pour te donner des infos super précises. Pour l’utiliser, installe d’abord le package :

from geoip2 import database

# Chemin vers la base de données GeoIP2
db_path = "Chemin/vers/GeoIP2-City.mmdb"

# Utilisation de la base de données
with database.Reader(db_path) as reader:
    response = reader.city("128.101.101.101")

    print("Pays:", response.country.name)
    print("Ville:", response.city.name)
    print("Code Postal:", response.postal.code)
    print("Latitude:", response.location.latitude)
    print("Longitude:", response.location.longitude)

Dans cet exemple, tu charges d’abord la base de données GeoIP2. Ensuite, tu utilises la méthode city pour obtenir des infos sur l’IP que tu veux analyser.

 

pygeoip

pygeoip, c’est une autre option. Moins récente que GeoIP2, mais toujours utile. Pour l’installer :

import pygeoip

# Initialisation de pygeoip
geoip = pygeoip.GeoIP("Chemin/vers/GeoLiteCity.dat")

# Récupération des infos
infos = geoip.record_by_addr('128.101.101.101')

print(infos)

Avec pygeoip, tu charges aussi une base de données. Ensuite, record_by_addr te donne un dictionnaire avec toutes les infos de l’IP.

 

IP2Location

IP2Location c’est une autre pépite pour trouver des infos géo avec une IP. Le truc cool, c’est qu’elle a sa propre base de data, et tu peux choisir entre la version gratuite ou celle qui envoie du lourd, la version payante. Pour la faire tourner, c’est pas compliqué:

import IP2Location

database = IP2Location.IP2Location("Chemin/vers/IP2LOCATION-LITE-DB1.BIN")

record = database.get_all("8.8.8.8")

print("Pays :", record.country_long)
print("Région :", record.region)
print("Ville :", record.city)

 

ipwhois

ipwhois te permet de faire un WHOIS sur une adresse IP pour obtenir des infos sur le propriétaire de l’IP, l’organisation, etc. Voici comment l’utiliser :

from ipwhois import IPWhois

obj = IPWhois('8.8.8.8')
results = obj.lookup_rdap(depth=1)

print(results)

Avec ipwhois, tu obtiens des infos un peu différentes, plus axées sur le propriétaire de l’adresse IP et les aspects administratifs.

 

Utilisation de requests et des APIs de Géolocalisation

 

API Externe avec requests

Parfois, au lieu d’une bibliothèque spécifique, on utilise requests pour interroger une API externe de géolocalisation. C’est super pratique et souvent assez rapide. Voici comment on fait :

  1. Choisis une API de Géolocalisation : Il y en a plein, comme ipinfo.io, ip-api.com, etc.
  2. Utilise requests pour envoyer une requête : Tu envoies l’adresse IP à l’API et tu reçois les infos.

Exemple avec ipinfo.io :

import requests

ip_address = "8.8.8.8"
response = requests.get(f"http://ipinfo.io/{ip_address}/json").json()

print(response)

Dans cet exemple, on utilise l’adresse IP 8.8.8.8 (l’adresse DNS de Google) et on reçoit des infos comme la localisation, l’organisation, etc.

 

Tutoriel vidéo (en anglais) avec l’API ip-api.com

How to Get Location of IP Address using Python

 

ipstack pour une Analyse Plus Approfondie

ipstack est une autre API puissante. Elle offre des fonctionnalités avancées, mais tu dois t’inscrire pour obtenir une clé API.

Voici comment tu l’utilises :

import requests

api_key = "ta_clé_api_ipstack"
ip_address = "8.8.8.8"
response = requests.get(f"http://api.ipstack.com/{ip_address}?access_key={api_key}").json()

print(response)

Avec ipstack, tu as la totale en terme d’informations, type d’IP, fournisseur d’accès, et même le code de devise si c’est pertinent, qui gère ça et tout le tralala.

 

socket pour Obtenir l’Adresse IP Locale

 

Utilisation de socket

Si tu veux obtenir l’adresse IP locale de ton propre système, socket est ta bibliothèque. C’est super simple :

import socket

hostname = socket.gethostname()
local_ip = socket.gethostbyname(hostname)

print("IP locale :", local_ip)

Avec socket, tu peux obtenir l’adresse IP de ton propre ordinateur. C’est utile pour des tests ou des configurations réseau.

 

Et voilà, tu viens de faire un tour complet sur comment localiser une adresse IP avec Python. T’as vu, c’est pas sorcier. Que tu sois en mode détective avec GeoIP2, en explorateur avec pygeoip, ou en chercheur de trésors avec IP2Location et ipwhois, Python t’offre toutes les clés pour décoder le monde mystérieux des adresses IP.

En prime, avec des outils comme requests et des APIs comme ipinfo.io ou ipstack, t’es équipé pour aller encore plus loin, en chopant des infos super précises. Et si t’es curieux de savoir ce qui se passe chez toi, socket te file l’adresse IP de ton propre matos, nickel pour tes tests et bidouillages.

En gros, que tu sois un pro de la prog ou juste un curieux, Python te file un sacré coup de main pour déchiffrer les adresses IP. Alors, n’attends plus, lance-toi et commence à jouer avec ces outils. Tu vas voir, c’est aussi amusant qu’utile !

Thomas Vernier

Sur NovaScope, je trace les lignes de convergence entre réalité et virtualité. Ma plume, aiguisée dans les méandres du code et de la culture geek, dévoile avec acuité les tendances émergentes et les perles rares du web.

Laisser un commentaire

You May Have Missed