Come generare indirizzi IP casuali? Principi spiegati con esempi di codice
In scenari come lo sviluppo web, i test di sistema e la simulazione dei dati, è spesso necessario generare indirizzi IP casuali. La prima reazione di molte persone è: non basta scrivere qualche numero a caso? Ma nell’uso reale ci si rende subito conto che gli IP casuali sono molto più complessi di quanto sembrino: riuscire a generarne uno non significa che sia ragionevole; assomigliare a un IP non significa che sia utilizzabile.
Che cos’è un indirizzo IP?
Prendendo IPv4 come esempio, un indirizzo IP è composto da quattro numeri compresi tra 0 e 255, ad esempio:
192.168.1.1
8.8.8.8In teoria, IPv4 dispone di circa 4,3 miliardi di indirizzi, ma ciò non significa che possano essere tutti utilizzati liberamente.
A seconda dello scopo, gli indirizzi IP possono essere generalmente suddivisi in tre categorie:
· IP pubblici: instradabili e accessibili su Internet
· IP privati: utilizzati solo all’interno delle reti locali
· IP riservati / speciali: loopback, broadcast e scopi di test
Con “IP casuale” si intende solitamente un indirizzo IP pubblico generato in modo casuale.
Il modo più semplice per generare un IP casuale (versione base)
L’approccio più comune e intuitivo è:
Generare casualmente quattro numeri interi compresi tra 0–255
Unirli in una stringa utilizzando .
Esempio (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())Dal punto di vista del formato, la stringa generata rispetta pienamente il formato IPv4.
⚠️ Dov’è il problema?
Questo approccio può generare IP privati (come 192.168.x.x), IP di loopback locali (127.x.x.x), indirizzi non instradabili o IP che semplicemente non esistono o che sono stati bloccati da tempo.
Filtrare gli IP non validi
1. Intervalli IPv4 comuni da escludere
| Intervallo IP | Scopo |
|---|---|
| 10.0.0.0 – 10.255.255.255 | Rete privata |
| 172.16.0.0 – 172.31.255.255 | Rete privata |
| 192.168.0.0 – 192.168.255.255 | Rete privata |
| 127.0.0.0 – 127.255.255.255 | Loopback |
| 0.0.0.0 | Indirizzo speciale |
2. Intervalli di indirizzi IPv6 comuni da escludere
| Prefisso IPv6 | Scopo |
|---|---|
| ::1/128 | Indirizzo di loopback |
| ::/128 | Indirizzo non specificato |
| fe80::/10 | Indirizzo link-local (solo rete locale) |
| fc00::/7 | Indirizzo locale unico (ULA, simile agli IP privati) |
| ff00::/8 | Indirizzo multicast |
| 2001:db8::/32 | Indirizzo di documentazione / esempio (non instradabile) |
Il metodo standard per generare indirizzi IP casuali: utilizzo della libreria standard ipaddress
Si consiglia di utilizzare la libreria integrata di Python ipaddress per gestire gli indirizzi IP.
Si tratta di una libreria standard di Python mantenuta ufficialmente, che fornisce supporto integrato per l’identificazione delle varie proprietà degli indirizzi IPv4 e IPv6, risultando molto più affidabile rispetto alla scrittura manuale di regole personalizzate.
Esempio:
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())Il punto chiave qui è:
is_global == True
Ciò significa che l’indirizzo IP:
Non è un indirizzo privato, non è un indirizzo di loopback, non è un indirizzo riservato ed è teoricamente instradabile su Internet pubblico.
Casi d’uso reali: utilizzo di IP proxy
Se i tuoi obiettivi includono:
🌍 Simulare diversi Paesi o regioni
🤖 Web scraping o raccolta dati
🔐 Test di controllo del rischio / anti-frode
🧪 Isolamento di ambienti multi-account
Allora ciò di cui hai bisogno non è un IP generato da un algoritmo casuale, ma:
Un IP reale e raggiungibile IP proxy
Questo tipo di IP presenta generalmente le seguenti caratteristiche:
· Esistono realmente su Internet
· Possono connettersi normalmente alla rete
· Hanno attributi come Paese, ISP e ASN
· Appaiono ai sistemi più simili alle reti di utenti reali
Riepilogo
Generare indirizzi IP casuali non è semplice come unire qualche numero. Un IP casuale realmente valido deve rispettare le regole di assegnazione degli indirizzi IP e distinguere chiaramente tra indirizzi pubblici, privati e riservati. In Python, l’utilizzo della libreria standard ufficiale ipaddress consente di generare IP pubblici strutturalmente validi in modo più standardizzato e affidabile, adatti a scenari di test e simulazione dei dati.
IPDeep fornisce servizi di IP proxy di alta qualità, tra cui:
Insieme a molti altri tipi di proxy, IPDeep offre oltre 10 milioni di risorse IP di alta qualità, coprendo più di 200 Paesi e regioni in tutto il mondo, aiutandoti a completare in modo efficiente e sicuro varie attività aziendali in ambienti di rete complessi.



