Comment générer des IP aléatoires pour le web scraping

Découvrez comment créer un générateur d’IP aléatoires basé sur Python et pourquoi les proxys sont la solution ultime pour des activités en ligne sécurisées et anonymes.
11 min de lecture
How to generate random IP address blog image

Dans ce guide, vous apprendrez :

  • La définition d’une adresse IP et ses utilisations
  • S’il est possible de générer des adresses IP aléatoires de manière programmatique
  • Comment créer un générateur d’IP aléatoires
  • Comment utiliser des adresses IP aléatoires pour masquer votre identité

Plongeons-y !

Qu’est-ce qu’une adresse IP ?

Une adresse IP est une chaîne de chiffres attribuée de manière unique aux appareils connectés à un réseau informatique communiquant via le protocole Internet. Vous pouvez la considérer comme une adresse numérique qui aide à identifier un appareil sur Internet ou un réseau local.

En bref, les adresses IP sont essentielles pour l’identification des appareils, le routage des données et même les services de géolocalisation. Au moment de la rédaction, la version la plus utilisée aujourd’hui est IPv4. Une adresse IPv4 se compose de quatre groupes de chiffres (appelés octets) séparés par des points, comme suit :

192.168.1.1

Chaque octet est un nombre pouvant aller de 0 à 255, offrant un espace de 4,3 milliards d’adresses uniques possibles.

Une norme plus récente, IPv6, utilise un format différent et fournit un pool d’adresses beaucoup plus vaste. Cependant, cet article se concentre sur IPv4. Vous pouvez en explorer davantage dans notre guide IPv4 vs IPv6.

Le moyen le plus simple de découvrir votre adresse IP publique est de visiter un site comme “What is my IP address.” Alternativement, sur Windows, vous pouvez trouver votre IP en lançant la commande suivante dans le terminal :

ipconfig

Excellent ! Il est maintenant temps de découvrir si vous pouvez créer un générateur d’IP aléatoires.

Est-il possible de créer un générateur d’adresses IP aléatoires ?

En bref : Oui, créer un générateur d’adresses IP aléatoires est tout à fait possible !

Comme mentionné précédemment, les adresses IP suivent une structure bien définie avec des chiffres dans des plages spécifiques. Cela rend la génération d’IP aléatoires valides non seulement possible, mais aussi relativement facile.
D’autre part, vous devez comprendre comment les IP sont attribuées et réservées pour éviter de générer des adresses qui ne sont que des ensembles de chiffres sans signification.

Les adresses IP sont gérées par l’IANA (Internet Assigned Numbers Authority) et distribuées par les RIR (Registres Internet Régionaux). Le respect des normes de l’IANA vous permet de générer des formats d’adresses valides de manière programmatique.

Lors de la création d’un outil de génération d’IP aléatoires, vous devez également ignorer certaines plages d’IP. En effet, certaines IP sont réservées et ne sont pas utilisées pour le trafic Internet public.

Vous pouvez trouver les plages IPv4 réservées dans le tableau suivant :

Bloc d’adresses Plage d’adresses Description
0.0.0.0/8 0.0.0.0 – 0.255.255.255 Réseau actuel (local, “ce” réseau)
10.0.0.0/8 10.0.0.0 – 10.255.255.255 Utilisé pour les communications locales au sein d’un réseau privé
100.64.0.0/10 100.64.0.0 – 100.127.255.255 Espace d’adresses partagé pour la communication entre fournisseur de services et abonné avec NAT de niveau opérateur
127.0.0.0/8 127.0.0.0 – 127.255.255.255 Utilisé pour les adresses de bouclage vers l’hôte local
169.254.0.0/16 169.254.0.0 – 169.254.255.255 Utilisé pour les adresses locales lorsqu’aucune IP n’est spécifiée (ex : échec DHCP)
172.16.0.0/12 172.16.0.0 – 172.31.255.255 Utilisé pour les communications locales au sein d’un réseau privé
192.0.0.0/24 192.0.0.0 – 192.0.0.255 Attributions de protocole IETF, DS-Lite (/29)
192.0.2.0/24 192.0.2.0 – 192.0.2.255 Attribué comme TEST-NET-1, pour la documentation et les exemples
192.88.99.0/24 192.88.99.0 – 192.88.99.255 Réservé. Anciennement utilisé pour le relais IPv6 vers IPv4
192.168.0.0/16 192.168.0.0 – 192.168.255.255 Utilisé pour les communications locales au sein d’un réseau privé
198.18.0.0/15 198.18.0.0 – 198.19.255.255 Utilisé pour les tests de performance des communications inter-réseaux entre sous-réseaux distincts
198.51.100.0/24 198.51.100.0 – 198.51.100.255 Attribué comme TEST-NET-2, pour la documentation et les exemples
203.0.113.0/24 203.0.113.0 – 203.0.113.255 Attribué comme TEST-NET-3, pour la documentation et les exemples
224.0.0.0/4 224.0.0.0 – 239.255.255.255 Utilisé pour le multicast (ancien réseau de Classe D)
233.252.0.0/24 233.252.0.0 – 233.252.0.255 Attribué comme MCAST-TEST-NET, pour la documentation et les exemples (partie de l’espace multicast)
240.0.0.0/4 240.0.0.0 – 255.255.255.254 Réservé pour un usage futur (ancien réseau de Classe E)
255.255.255.255/32 255.255.255.255 Réservé pour l’adresse de destination de “diffusion limitée”

Découvrez comment générer une adresse IP aléatoire à l’aide d’un simple script Python !

Comment générer une IP aléatoire en Python

Suivez ce tutoriel étape par étape pour apprendre à créer une fonction Python de génération d’IP aléatoires !

Étape 1 : Définir une fonction pour générer des adresses IPv4

Les adresses IPv4 ne sont rien d’autre que des chaînes composées de quatre octets, chacun allant de 0 à 255. Pour générer ces nombres aléatoires au format IP, vous pouvez utiliser la logique suivante :

def generate_random_ipv4():
    return f"{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}"

randint() de random génère un nombre aléatoire entre 0 et 255. Ainsi, la fonction generate_random_ipv4() renvoie une chaîne au format suivant :

X.Y.Z.A 

Où X, Y, Z, et A sont des nombres de 0 à 255.

N’oubliez pas d’importer random depuis la bibliothèque standard Python :

import random

Étape 2 : Ajouter la logique de filtrage pour les IP réservées

La bibliothèque ipaddress de la bibliothèque standard Python fournit une classe IPv4Address. Celle-ci expose un attribut is_reserved pour vérifier si une adresse IP est réservée.

Tout d’abord, importez la bibliothèque ipaddress :

import ipaddress

Ensuite, utilisez-la pour créer une logique qui génère de manière répétée des adresses IP aléatoires jusqu’à ce qu’elle en génère une qui ne soit pas réservée :

while True:
    # Génère une adresse IP aléatoire
    ip = f"{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}"
    
    # Vérifie si l'IP générée fait partie des blocs réservés
    if not ipaddress.IPv4Address(ip).is_reserved:
        return ip

Formidable ! Votre fonction Python de génération d’adresses IP aléatoires est prête.

Étape 3 : Tester la fonction

Voici à quoi ressemblerait votre fonction de génération d’IP aléatoires :

import random
import ipaddress


def generate_random_ipv4():
    while True:
        # Génère une adresse IP aléatoire
        ip = f"{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}"
        
        # Vérifie si l'IP générée fait partie des blocs réservés
        if not ipaddress.IPv4Address(ip).is_reserved:
            return ip

Appelez la fonction de génération d’IP aléatoires et affichez le résultat :

ip = generate_random_ipv4()
print(ip)

Le résultat ressemblera à ceci :

61.18.2.4

Incroyable ! Mission accomplie.

Bonus : Créer un générateur aléatoire IPv6

Tout comme le générateur IPv4, voici comment créer un générateur IPv6 :

import random
import ipaddress


def generate_random_ipv6():
    while True:
        # Génère une adresse IPv6 aléatoire
        ip = ":".join(f"{random.randint(0, 0xFFFF):04x}" for _ in range(8))
        
        # Vérifie si l'IP générée fait partie des blocs réservés
        if not ipaddress.IPv6Address(ip).is_reserved:
            return ip

Utiliser des IP aléatoires pour protéger votre identité

La vraie question est : pourquoi auriez-vous besoin d’un générateur d’IP aléatoires ? Voici quelques réponses possibles :

  • Apprentissage : Utilisez-le comme outil pour comprendre comment les adresses IP sont structurées et gérées.
  • Tests : Utilisez-le dans des processus nécessitant une adresse IP en entrée ou impliquant l’utilisation d’IP pour des tâches spécifiques, comme la validation de configurations réseau, de pare-feu ou d’autres systèmes.

Rappelez-vous maintenant qu’une adresse IP est un identifiant unique. Ne serait-ce pas magique si vous pouviez générer une IP aléatoire et l’utiliser pour masquer votre identité ? Par exemple, lors du web scraping, cela aiderait à :

  1. Empêcher le site cible de détecter les requêtes automatisées.
  2. Vous donner un pool d’IP virtuellement infini pour éviter les mesures anti-scraping comme la limitation de débit.

Ce serait fantastique ! Pourtant, il n’est pas possible de simplement créer un générateur d’IP aléatoires et de l’utiliser directement sur votre machine. Ce que vous pouvez faire à la place, c’est acheminer vos requêtes via un pool de serveurs proxy.

Ce mécanisme vous aide à garantir que chaque requête effectuée par votre machine semble provenir d’une adresse IP différente. Apprenez-en davantage dans notre tutoriel sur comment faire tourner une adresse IP.

Utiliser des proxys est ce qui se rapproche le plus de l’exploitation d’un générateur d’IP aléatoires pour la sécurité et l’anonymat en ligne. De nombreux fournisseurs de proxy résidentiel de premier plan offrent d’immenses pools d’IP valides—souvent des millions. Ainsi, les proxys se rapprochent de l’accès à des IP aléatoires.

Techniques de rotation d’IP aléatoires

Maintenant que vous comprenez les avantages de la rotation d’IP par rapport à la simple génération d’IP. Explorons quelques méthodes pour utiliser des IP aléatoires !

VPN

Un VPN, abréviation de Virtual Private Network (réseau privé virtuel), masque votre adresse IP en acheminant votre connexion via des serveurs situés à différents endroits. Cela vous donne accès à un ensemble aléatoire d’IP dans le monde entier.

Contrairement à un serveur proxy, un VPN crée également un tunnel sécurisé et chiffré entre votre appareil et le réseau VPN. Pour une comparaison plus approfondie, consultez notre article VPN vs Proxy.

👍 Avantages :

  • Accès à de nombreuses IP du monde entier
  • Chiffre le trafic pour la confidentialité
  • Idéal pour la navigation générale

👎 Inconvénients :

  • Difficile à intégrer au niveau de l’application
  • Pool d’IP limité par rapport aux proxys
  • IP de centres de données détectables

Proxys

Un proxy agit comme un intermédiaire entre votre appareil et le serveur cible. Ce mécanisme vous permet d’utiliser l’adresse IP du serveur proxy au lieu de la vôtre. Cela donne accès à un pool d’IP “aléatoires” pour un meilleur anonymat et pour contourner les restrictions.

Contrairement à un VPN, les proxys sont plus faciles à intégrer directement dans votre code, car la plupart des clients HTTP prennent en charge la configuration proxy. Voici un exemple d’ implémentation de la rotation d’IP avec des proxys en utilisant requests :

import requests  
import random  

# Pool de proxys
proxies = [  
    "<PROXY_URL_1>",  
    "<PROXY_URL_2>",  
    "<PROXY_URL_3>"  
]  

# Obtenir une configuration proxy aléatoire
def get_random_proxy():  
    return {"http": random.choice(proxies), "https": random.choice(proxies)}  

# Exemple d'utilisation   
proxy = get_random_proxy()
response = requests.get("https://example.com", proxies=proxy)

Si vous ne savez pas où trouver des proxys rotatifs, consultez notre guide sur les meilleurs proxys rotatifs du marché.

👍 Avantages :

  • Pools d’IP vastes et fiables
  • Connexions à haute vitesse
  • Fréquence de rotation personnalisable

👎 Inconvénients :

  • Nécessite une configuration technique

API de web scraping

Une API de web scraping fournit tous les outils nécessaires pour simplifier le processus de web scraping. Au lieu de gérer des complexités comme la gestion des proxys, des agents utilisateurs, des CAPTCHA, des mesures anti-bot et des nouvelles tentatives, vous appelez simplement l’API avec votre URL cible. Elle renvoie le contenu HTML de la page ou extrait automatiquement les données dans un format JSON structuré.

Découvrez pourquoi l’ API Scraper de Bright Data est l’une des meilleures solutions de web scraping, offrant une gestion avancée anti-bot, une rotation d’IP, une planification des données et bien plus encore.

👍 Avantages :

  • Solution de scraping tout-en-un
  • Accès à un large ensemble d’IP dans votre application sans configuration requise
  • Évolutif pour les grands projets

👎 Inconvénients :

  • Vous oblige à dépendre d’un service tiers

Conclusion

Dans ce guide, vous avez appris ce qu’est une adresse IP, ce qu’elle contient, et comment créer un générateur d’adresses IP aléatoires en Python. Bien que générer des IP aléatoires soit facile, elles ne sont pas particulièrement utiles en elles-mêmes. Vous ne pouvez pas simplement les utiliser pour remplacer l’identité de votre machine.

Cela peut être réalisé grâce à un mécanisme différent : les serveurs proxy. Un serveur proxy agit comme intermédiaire, relayant les requêtes de vous vers les serveurs cibles et gérant les réponses de la cible vers vous. Ainsi, le serveur cible ne voit que l’adresse IP du proxy, et non la vôtre.

Le défi réside dans le choix d’un fournisseur de proxy fiable. Des dizaines de fournisseurs offrent des services similaires, mais tous ne sont pas dignes de confiance ou efficaces. Vous avez besoin d’un fournisseur avec des serveurs fiables, un large pool d’IP et des politiques de confidentialité solides. Au lieu de perdre du temps à tous les tester, allez directement à la meilleure option du marché, Bright Data.

Bright Data contrôle les meilleurs serveurs proxy au monde, servant des entreprises du Fortune 500 et 50,000+ clients. Son réseau de proxy mondial comprend :

Dans l’ensemble, c’est l’un des réseaux de proxy orientés scraping les plus vastes et les plus fiables du marché.

Créez un compte Bright Data et testez ces services de scraping dès aujourd’hui !