Your First Plan is on Us!

Get 100% of your first residential proxy purchase back as wallet balance, up to $900.

Start now
EN
English
简体中文
Log inGet started for free

Blog

Proxies

How to Generate Random IP Addresses for Web Scraping: Complete 2025 Guide

Generate Random IP Addresses
author jenny

Jenny Avery
Last updated on
2025-10-17
 
8 min read
 

Article Summary:

●  Understand IP address structure and reserved ranges

●  Build working Python scripts for IPv4/IPv6 generation

●  Learn to filter out invalid/reserved IP addresses

●  Discover why raw IP generation isn’t enough for anonymity

●  Implement practical proxy rotation with Thordata

What Is an IP Address and How Does It Work?

An IP (Internet Protocol) address is a unique numerical identifier assigned to every device connected to a network. It serves two primary functions:

1. Network Identification: Identifies your device on the internet or local network

2. Location Addressing: Provides information about your geographical location

IPv4 vs. IPv6: Key Differences

IPv4 Address Format:

●  Structure: Four octets separated by periods (e.g., 168.1.1)

●  Range: 0.0.0.0 to 255.255.255.255

●  Capacity: ~4.3 billion addresses

IPv6 Address Format:

●  Structure: Eight hexadecimal groups separated by colons (e.g., 2001:0db8:85a3:0000:0000:8a2e:0370:7334)

●  Capacity: 340 undecillion addresses

●  Solution to IPv4 exhaustion

Check your current IP at What Is My IP Address.com.

Why Generate Random IP Addresses? Practical Use Cases

Legitimate Applications:

●  Software Testing: Simulate traffic from diverse geographic locations

●  Network Security: Test firewall rules and intrusion detection systems

●  Web Scraping: Avoid detection by rotating request origins

●  Load Testing: Simulate multiple users from different IP ranges

What You Cannot Do:

❌ Assign generated IPs directly to your machine

❌ Bypass geographic restrictions without proxies

❌ Hide your real identity without intermediary services

How to Generate Valid Random IP Addresses in Python

Understanding Reserved IP Ranges

Before generating IPs, exclude these reserved blocks:

Address Block

Address Range

Description

0.0.0.0/8

0.0.0.0 – 0.255.255.255

Current (local, “this”) network

10.0.0.0/8

10.0.0.0 – 10.255.255.255

Used for local communications within a private network

100.64.0.0/10

100.64.0.0 – 100.127.255.255

Shared address space for service provider and subscriber communication with carrier-grade NAT

127.0.0.0/8

127.0.0.0 – 127.255.255.255

Used for loopback addresses to the local host

169.254.0.0/16

169.254.0.0 – 169.254.255.255

Used for link-local addresses when no IP is specified (e.g., DHCP failure)

172.16.0.0/12

172.16.0.0 – 172.31.255.255

Used for local communications within a private network

192.0.0.0/24

192.0.0.0 – 192.0.0.255

IETF Protocol Assignments, DS-Lite (/29)

192.0.2.0/24

192.0.2.0 – 192.0.2.255

Assigned as TEST-NET-1, for documentation and examples

192.88.99.0/24

192.88.99.0 – 192.88.99.255

Reserved. Formerly used for IPv6 to IPv4 relay

192.168.0.0/16

192.168.0.0 – 192.168.255.255

Used for local communications within a private network

198.18.0.0/15

198.18.0.0 – 198.19.255.255

Used for benchmark testing of inter-network communications between separate subnets

198.51.100.0/24

198.51.100.0 – 198.51.100.255

Assigned as TEST-NET-2, for documentation and examples

203.0.113.0/24

203.0.113.0 – 203.0.113.255

Assigned as TEST-NET-3, for documentation and examples

224.0.0.0/4

224.0.0.0 – 239.255.255.255

In use for multicast (former Class D network)

233.252.0.0/24

233.252.0.0 – 233.252.0.255

Assigned as MCAST-TEST-NET, for documentation and examples (part of multicast space)

240.0.0.0/4

240.0.0.0 – 255.255.255.254

Reserved for future use (former Class E network)

255.255.255.255/32

255.255.255.255

Reserved for the “limited broadcast” destination address

Complete Python Implementation

import random

import ipaddress

def generate_random_ipv4():

    “””

    Generate a random, non-reserved IPv4 address

    Returns a string in the format X.X.X.X

    “””

    while True:

        # Generate a random IP address with four octets

        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

# Test the function

if __name__ == “__main__”:

    ip = generate_random_ipv4()

    print(f”Generated IP: {ip}”)

Why Generated IPs Alone Won’t Protect Your Privacy

The Fundamental Limitation

While you can generate random IP addresses, you cannot directly use them for outgoing connections. Your internet traffic always routes through your ISP-assigned IP.

Real Solutions for Anonymity:

Proxy Servers: Intermediate servers that mask your real IP, and Residential Proxies: Legitimate IPs from real devices.

Implementing Practical IP Rotation with Proxies

Python Proxy Rotation Script

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)

Top 3 Proxy Providers for Effective IP Rotation

1. Thordata

view

Why Choose Thordata:

✅ 10M+ residential IPs across 190 countries

✅ AI-powered anti-detection technology

✅ 99.9% uptime guarantee

✅ Ethical sourcing compliant

✅ Visit Thordata

Best For: Enterprise web scraping, ad verification, price monitoring

2. Bright Data

brightdata

●  150M+ IP network

●  Advanced CAPTCHA solving

●  Structured data extraction

3. Oxylabs

oxylabs

●  Geo-targeting capabilities

●  Auto-IP rotation

●  SOCKS5 support

Web Scraping APIs Solution

A web scraping API provides all the tools you need to simplify the web scraping process. Instead of handling complexities like managing proxies, user agents, CAPTCHA, anti-bot measures, and retries, you simply call the API with your target URL. It returns the HTML content of the page or automatically extracts the data into a structured JSON format.

Discover why Thordata’s Scraper API is one of the best web scraping solutions, offering advanced anti-bot management, IP rotation, data scheduling, and much more.

👍 Pros:

All-in-one scraping solution

Access to a large set of IPs in your application with no configuration required

Scalable for large projects

Conclusion

Generating random IP addresses is valuable for testing and development, but practical anonymity requires proxy services. For reliable web scraping and geo-restriction bypassing, Thordata provides the most robust proxy infrastructure with extensive IP diversity and advanced anti-detection capabilities.

Remember: Always respect terms of service, implement proper rate limiting, and use these tools ethically.

We hope the information provided is helpful. However, if you have any further questions, feel free to contact us at support@thordata.com or via online chat.

Frequently asked questions

How does a random IP address generator work in Python?

38

The generator creates valid IP addresses by producing random numbers within the 0-255 range for each octet, then validates them against IANA’s reserved ranges using Python’s ipaddress module to ensure they’re usable for public traffic

Can I use generated IP addresses for actual web browsing?

 

No, generated IPs are only simulated addresses. To actually route traffic through different IPs, you need proxy servers.

What’s the difference between datacenter and residential proxies for IP rotation?

 

Datacenter proxies come from cloud servers and are cheaper but easier to detect. Residential proxies like Thordata’s come from real ISP-assigned IPs, making them more legitimate and harder to block for scraping tasks.

About the author

Jenny is a Content Specialist with a deep passion for digital technology and its impact on business growth. She has an eye for detail and a knack for creatively crafting insightful, results-focused content that educates and inspires. Her expertise lies in helping businesses and individuals navigate the ever-changing digital landscape.

The thordata Blog offers all its content in its original form and solely for informational intent. We do not offer any guarantees regarding the information found on the thordata Blog or any external sites that it may direct you to. It is essential that you seek legal counsel and thoroughly examine the specific terms of service of any website before engaging in any scraping endeavors, or obtain a scraping permit if required.