Comment générer des adresses IP aléatoires pour le Web Scraping

Découvrez comment créer un générateur d’adresses 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.
13 min de lecture
How to generate random IP address blog image

Grâce à ce guide, vous allez apprendre :

  • La définition d’une adresse IP et son utilisation
  • S’il est possible de générer par programme des adresses IP aléatoires
  • Comment construire un générateur d’adresses IP aléatoires
  • Comment utiliser des adresses IP aléatoires pour cacher votre identité

C’est parti !

Qu’est-ce qu’une adresse IP ?

Une adresse IP est une chaîne de chiffres attribuée de manière unique aux dispositifs connectés à un réseau informatique communiquant via le le protocole Internet. Il s’agit d’une adresse numérique qui permet d’identifier un appareil sur Internet ou sur un réseau local.

En bref, les adresses IP sont essentielles pour l’identification des appareils, l’acheminement des données et même les services de géolocalisation. À l’heure actuelle, la version la plus largement utilisée 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 qui peut aller de 0 à 255, offrant ainsi un espace de 4,3 milliards d’adresses uniques.

Une norme plus récente, IPv6utilise un format différent et fournit un pool d’adresses beaucoup plus important. Toutefois, cet article se concentre sur l’IPv4. Vous pouvez en savoir plus dans notre guide Guide IPv4 vs IPv6.

La façon la plus simple de découvrir votre adresse IP publique est de visiter un site comme « Quelle est mon adresse IP ». Alternativement, sous Windows, vous pouvez trouver votre adresse IP en lançant la commande suivante dans le terminal :

ipconfig

Parfait ! Il est maintenant temps de voir si vous pouvez développer un générateur d’adresses IP aléatoires.

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

TL;DR : Oui, il est tout à fait possible de créer un générateur d’adresses IP aléatoires !

Comme indiqué précédemment, les adresses IP suivent une structure bien définie, avec des nombres compris dans des plages spécifiques. La génération d’adresses IP aléatoires valides est donc non seulement possible, mais aussi relativement facile.
Vous devez également comprendre comment les adresses IP sont attribuées et réservées afin d’éviter de générer des adresses qui ne sont que des séries de chiffres sans signification.

Les adresses IP sont gérées par l’IANA (Internet Assigned Numbers Authority) et distribuées par les RIR (Regional Internet Registries). Le respect des normes de l’IANA permet de générer par programme des formats d’adresse valides.

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

Vous trouverez les plages d’adresses 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, « celui-ci »)
10.0.0.0/8 10.0.0.0 – 10.255.255.255 Utilisés 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 le fournisseur de services et l’abonné avec NAT de qualité opérateur
127.0.0.0/8 127.0.0.0 – 127.255.255.255 Utilisés pour les adresses de bouclage vers l’hôte local
169.254.0.0/16 169.254.0.0 – 169.254.255.255 Utilisés pour les adresses locales lorsqu’aucune IP n’est spécifiée (par exemple, échec du DHCP)
172.16.0.0/12 172.16.0.0 – 172.31.255.255 Utilisés 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és comme TEST-NET-1, à des fins de documentation et d’exemples
192.88.99.0/24 192.88.99.0 – 192.88.99.255 Réservés. Anciennement utilisés pour le relais IPv6 vers IPv4
192.168.0.0/16 192.168.0.0 – 192.168.255.255 Utilisés 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és pour les tests de référence des communications inter-réseaux entre des sous-réseaux distincts
198.51.100.0/24 198.51.100.0 – 198.51.100.255 Attribués comme TEST-NET-2, à des fins de documentation et d’exemples
203.0.113.0/24 203.0.113.0 – 203.0.113.255 Attribués comme TEST-NET-3, à des fins de documentation et d’exemples
224.0.0.0/4 224.0.0.0 – 239.255.255.255 Utilisés pour la multidiffusion (ancien réseau de classe D)
233.252.0.0/24 233.252.0.0 – 233.252.0.255 Assignés comme MCAST-TEST-NET, à des fins de documentation et d’exemples (partie de l’espace de multidiffusion)
240.0.0.0/4 240.0.0.0 – 255.255.255.254 Réservés pour une utilisation future (ancien réseau de classe E)
255.255.255.255/32 255.255.255.255 Réservés à l’adresse de destination « 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 adresse IP aléatoire en Python

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

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

Les adresses IPv4 sont simplement 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)}"

La fonction randint() du module 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ù XYZet A sont des nombres compris entre 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 adresses IP réservées

La bibliothèque ipaddress de la bibliothèque standard Python fournit une classe IPv4Address . Ceci 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 n’est pas réservée :

while True:
    # Generate a random IP address
    ip = f"{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}"
    
    # Check if the generated IP is within the reserved blocks
    if not ipaddress.IPv4Address(ip).is_reserved:
        return ip

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

Étape 3 : tester la fonction

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

import random
import ipaddress


def generate_random_ipv4():
    while True:
        # Generate a random IP address
        ip = f"{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}.{random.randint(0, 255)}"
        
        # Check if the generated IP is within the reserved blocks
        if not ipaddress.IPv4Address(ip).is_reserved:
            return ip

Appelez la fonction du générateur d’adresses IP aléatoires et imprimez le résultat :

ip = generate_random_ipv4()
print(ip)

Le résultat ressemblera à ceci :

61.18.2.4

Incroyable ! Votre mission est terminée.

En supplément : construire un générateur d’adresses IPv6 aléatoires

Tout comme le générateur d’adresses IPv4, voici comment vous pouvez créer un générateur d’adresses IPv6 :

import random
import ipaddress


def generate_random_ipv6():
    while True:
        # Generate a random IPv6 address
        ip = ":".join(f"{random.randint(0, 0xFFFF):04x}" for _ in range(8))
        
        # Check if the generated IP is within the reserved blocks
        if not ipaddress.IPv6Address(ip).is_reserved:
            return ip

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

La vraie question à se poser est la suivante : pourquoi auriez-vous besoin d’un générateur aléatoire d’adresses IP ? Voici quelques réponses possibles :

  • Apprentissage : utilisez-le comme un outil pour comprendre comment les adresses IP sont structurées et gérées.
  • Test : utilisez-le dans les processus qui requièrent une adresse IP en entrée ou qui impliquent l’utilisation d’adresses IP pour des tâches spécifiques, telles que la validation de configurations de réseau, de pare-feu ou d’autres systèmes.

Rappelons qu’une adresse IP est un identifiant unique. Ne serait-il pas magique de pouvoir générer une adresse IP aléatoire et de l’utiliser pour masquer son identité ? Par exemple, lors du web scrapingcela pourrait être utile :

  1. Empêcher le site cible de détecter les requêtes automatisées.
  2. Vous fournir un pool virtuellement infini d’adresses IP avec lesquelles travailler pour éviter les mesures anti-scraping telles que la limitation du taux d’accès.

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

Ce mécanisme vous permet de vous assurer que chaque requête effectuée par votre machine semble provenir d’une adresse IP différente. Pour en savoir plus, consultez notre tutoriel sur la rotation d’une adresse IP.

L’utilisation de proxys est ce qui se rapproche le plus d’un générateur d’adresses IP aléatoires pour la sécurité et l’anonymat en ligne. De nombreux fournisseurs de proxy résidentiels de premier plan disposent d’importantes réserves d’adresses IP valides à proposer, souvent par millions. Les proxys sont donc proches d’un accès à des adresses IP aléatoires.

Techniques de rotation des adresses IP aléatoires

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

VPN

Un VPN, abréviation de Virtual Private Network (réseau privé virtuel), masque votre adresse IP en acheminant votre connexion par l’intermédiaire de serveurs situés à différents endroits. Cela vous donne accès à un ensemble d’adresses IP aléatoireq 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 à un grand nombre d’adresses IP du monde entier
  • Chiffrement du trafic pour plus de confidentialité
  • Idéal pour la navigation générale

👎 Inconvénients :

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

Proxys

Un proxy fait office d’intermédiaire entre votre ordinateur et le serveur Web cible. Ce mécanisme vous permet d’utiliser l’adresse IP du serveur proxy au lieu de la vôtre. Cela permet d’accéder à un ensemble d’adresses IP « aléatoires » afin d’améliorer l’anonymat et de 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 des proxys. Voici un exemple d’utilisation mettant en œuvre une rotation d’adresses IP avec des proxys utilisant des requêtes :

import requests  
import random  

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

# Get a random proxy config
def get_random_proxy():  
    return {"http": random.choice(proxies), "https": random.choice(proxies)}  

# Example usage   
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 sur le marché.

👍 Avantages :

  • Importants pools d’adresses IP fiables
  • Connexions à haut débit
  • Fréquence de rotation personnalisable

👎 Inconvénients :

  • Nécessite une configuration technique

API Web Scraping

Une API de web scraping fournit tous les outils dont vous avez besoin pour simplifier le processus de web scraping. Au lieu de gérer des aspects complexes tels que les proxys, les agents utilisateurs, les CAPTCHA, les mesures anti-bots et les tentatives, il vous suffit d’appeler 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 scraping web, offrant une gestion anti-bot avancée, une rotation des IP, une planification des données, et bien plus encore.

👍 Avantages :

  • Solution de scraping complète
  • Accès à un grand nombre d’IP dans votre application sans aucune configuration
  • Évolutif pour les grands projets

👎 Inconvénients :

  • Vous obliger à faire appel à un service tiers

Conclusion

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

Ceci peut être réalisé par un mécanisme différent : les serveurs proxy. Un serveur proxy agit comme un intermédiaire, qui relaie les requêtes que vous adressez aux serveurs cibles et qui gère les réponses que ces derniers vous renvoient. De cette manière, le serveur cible ne voit que l’adresse IP du proxy, et non votre adresse réelle.

La difficulté réside dans le choix d’un fournisseur de proxy fiable. Des dizaines de fournisseurs proposent des services similaires, mais tous ne sont pas fiables ou efficaces. Vous avez besoin d’un fournisseur qui dispose de serveurs fiables, d’un grand nombre d’adresses IP et d’une politique de confidentialité rigoureuse. Au lieu de perdre du temps à les tester tous, passez directement à la meilleure solution du marché, Bright Data.

Bright Data possède les meilleurs serveurs proxy au monde. Ce fournisseur aide des entreprises qui figurent dans le classement Fortune 500 et plus de 20 000 clients. Son réseau mondial de proxys comprend les proxys suivants :

  • Proxys de centre de données — Plus de 770 000 adresses IP de datacenters.
  • Proxys résidentiels – Plus de 72 millions d’adresses IP résidentielles dans plus de 195 pays.
  • Proxys de fournisseurs d’accès à Internet — Plus de 700 000 adresses IP de fournisseurs d’accès Internet.
  • Proxys de mobiles – Plus de 7 millions d’adresses IP mobiles.

Dans l’ensemble, il s’agit de l’un des réseaux de proxys orientés vers le web scraping les plus importants et fiables du marché.

Créez un compte Bright Data et testez ces services de scraping en profitant d’un essai gratuit !

Aucune carte de crédit requise