Comment générer des adresses IP aléatoires ? Principes expliqués avec des exemples de code
Dans des scénarios tels que le développement web, les tests système et la simulation de données, il est souvent nécessaire de générer des adresses IP aléatoires. La première réaction de beaucoup de personnes est : ne suffit-il pas d’écrire quelques chiffres au hasard ? Mais dans un usage réel, on se rend vite compte que les IP aléatoires sont bien plus complexes qu’il n’y paraît : pouvoir en générer une ne signifie pas qu’elle soit valide ; ressembler à une IP ne veut pas dire qu’elle soit utilisable.
Qu’est-ce qu’une adresse IP ?
En prenant IPv4 comme exemple, une adresse IP est composée de quatre nombres compris entre 0 et 255, par exemple :
192.168.1.1
8.8.8.8En théorie, IPv4 dispose d’environ 4,3 milliards d’adresses, mais cela ne signifie pas qu’elles puissent toutes être utilisées librement.
Selon leur usage, les adresses IP peuvent généralement être divisées en trois catégories :
· IP publiques : routables et accessibles sur Internet
· IP privées : utilisées uniquement au sein des réseaux locaux
· IP réservées / spéciales : bouclage (loopback), diffusion (broadcast) et usages de test
Une « IP aléatoire » fait généralement référence à une adresse IP publique générée de manière aléatoire.
La manière la plus simple de générer une IP aléatoire (version basique)
L’approche la plus courante et la plus intuitive consiste à :
Générer aléatoirement quatre entiers compris entre 0–255
Les assembler en une chaîne à l’aide du caractère .
Exemple (Python)
import random
def random_ip_basic():
return ".".join(str(random.randint(0, 255)) for _ in range(4))
for _ in range(5):
print(random_ip_basic())Du point de vue du format, la chaîne générée respecte parfaitement le format IPv4.
⚠️ Où est le problème ?
Cette méthode peut générer des IP privées (comme 192.168.x.x), des IP de bouclage locales (127.x.x.x), des adresses non routables, ou encore des IP qui n’existent tout simplement pas ou qui ont été bloquées depuis longtemps.
Filtrer les IP non valides
1. Plages IPv4 courantes à exclure
| Plage IP | Usage |
|---|---|
| 10.0.0.0 – 10.255.255.255 | Réseau privé |
| 172.16.0.0 – 172.31.255.255 | Réseau privé |
| 192.168.0.0 – 192.168.255.255 | Réseau privé |
| 127.0.0.0 – 127.255.255.255 | Bouclage (loopback) |
| 0.0.0.0 | Adresse spéciale |
2. Plages d’adresses IPv6 courantes à exclure
| Préfixe IPv6 | Usage |
|---|---|
| ::1/128 | Adresse de bouclage (loopback) |
| ::/128 | Adresse non spécifiée |
| fe80::/10 | Adresse lien-local (réseau local uniquement) |
| fc00::/7 | Adresse locale unique (ULA, similaire aux IP privées) |
| ff00::/8 | Adresse multicast |
| 2001:db8::/32 | Adresse de documentation / d’exemple (non routable) |
La méthode standard pour générer des adresses IP aléatoires : utiliser la bibliothèque standard ipaddress
Il est recommandé d’utiliser la bibliothèque intégrée de Python ipaddress pour gérer les adresses IP.
Il s’agit d’une bibliothèque standard officiellement maintenue par Python, qui prend en charge nativement l’identification de diverses propriétés des adresses IPv4 et IPv6, ce qui la rend bien plus fiable que l’écriture de règles personnalisées à la main.
Exemple :
IPv4 :
import random
import ipaddress
def random_public_ipv4():
while True:
ip = ipaddress.IPv4Address(random.randint(0, 2**32 - 1))
if ip.is_global:
return str(ip)
for _ in range(5):
print(random_public_ipv4())IPv6 :
import random
import ipaddress
def random_public_ipv6():
while True:
ip = ipaddress.IPv6Address(random.randint(0, 2**128 - 1))
if ip.is_global:
return str(ip)
for _ in range(5):
print(random_public_ipv6())Le point clé ici est :
is_global == True
Cela signifie que l’adresse IP :
N’est pas une adresse privée, n’est pas une adresse de bouclage (loopback), n’est pas une adresse réservée et est théoriquement routable sur l’Internet public.
Cas d’utilisation réels : utiliser des IP proxy
Si vos objectifs incluent :
🌍 Simuler différents pays ou régions
🤖 Web scraping ou collecte de données
🔐 Tests de gestion des risques / anti-fraude
🧪 Isolation d’environnements multi-comptes
Alors, ce dont vous avez besoin n’est pas une IP générée par un algorithme aléatoire, mais :
Une IP réelle et accessible Proxy IP
Ces types d’IP présentent généralement les caractéristiques suivantes :
· Elles existent réellement sur Internet
· Elles peuvent se connecter normalement au réseau
· Elles possèdent des attributs tels que le pays, le FAI et l’ASN
· Elles ressemblent davantage à de véritables réseaux d’utilisateurs aux yeux des systèmes
Résumé
Générer des adresses IP aléatoires ne consiste pas simplement à assembler quelques chiffres. Une IP aléatoire réellement pertinente doit respecter les règles d’allocation des adresses IP et distinguer clairement les adresses publiques, privées et réservées. En Python, l’utilisation de la bibliothèque standard officielle ipaddress permet de générer des IP publiques structurellement valides de manière plus normalisée et fiable, adaptées aux scénarios de test et de simulation de données.
IPDeep fournit des services d’IP proxy de haute qualité, notamment :
Ainsi que de nombreux autres types de proxys, IPDeep propose plus de 10 millions de ressources IP de haute qualité, couvrant plus de 200 pays et régions à travers le monde, afin de vous aider à mener à bien vos différentes activités de manière efficace et sécurisée dans des environnements réseau complexes.



