Как генерировать случайные IP-адреса для веб-парсинга

Узнайте, как создать генератор случайных IP-адресов на основе Python и почему прокси — идеальное решение для безопасной и анонимной онлайн-активности.
2 min read
How to generate random IP address blog image

Из этого руководства вы узнаете:

  • Определение IP-адреса и его использование
  • Можно ли программно генерировать случайные IP-адреса
  • Как создать генератор случайных IP-адресов
  • Как использовать случайные IP-адреса для сокрытия личности

Давайте рассмотрим эти вопросы подробнее!

Что такое IP-адрес?

IP-адрес — это строка чисел, уникально присвоенная устройствам, подключенным к компьютерной сети, взаимодействующей по протоколу Internet Protocol. Его можно рассматривать как цифровой адрес, который помогает идентифицировать устройство в Интернете или локальной сети.

Короче говоря, IP-адреса необходимы для идентификации устройств, маршрутизации данных и даже для служб геолокации. На момент написания этой статьи наиболее широко используемой версией на сегодняшний день является IPv4. Адрес IPv4 состоит из четырех групп чисел (называемых октетами), разделенных точками, а именно:

192.168.1.1

Каждый октет — это число, которое может варьироваться от 0 до 255, что позволяет использовать пространство в 4,3 миллиарда уникальных возможных адресов.

Новый стандарт IPv6использует другой формат и предоставляет гораздо больший пул адресов. Однако в этой статье основное внимание уделяется IPv4. Подробнее читайте в нашем руководстве по IPv4 и IPv6.

Самый простой способ узнать свой публичный IP-адрес — посетить сайт типа «Какой у меня IP-адрес». Кроме того, в Windows вы можете найти свой IP-адрес, запустив следующую команду в терминале:

ipconfig

Прекрасно! Теперь пришло время узнать, можно ли создать генератор случайных IP-адресов.

Можно ли создать генератор случайных IP-адресов?

TL; DR: Да, создание генератора случайных IP-адресов вполне возможно!

Как упоминалось ранее, IP-адреса имеют четко определенную структуру с числами в определенных диапазонах. Это делает генерацию действительных случайных IP-адресов не только возможной, но и относительно простой.
С другой стороны, вам необходимо понять, как назначаются и резервируются IP-адреса, чтобы не создавать адреса, представляющие собой просто бессмысленные наборы чисел.

IP-адреса управляются IANA (Управление по присвоению номеров в Интернете) и распространяются RIR (региональные интернет-реестры). Соблюдение стандартов IANA позволяет программно генерировать действительные форматы адресов.

При создании инструмента генерации случайных IP-адресов вам также необходимо игнорировать определенные диапазоны IP-адресов. Это связано с тем, что некоторые IP-адреса зарезервированы и не используются для публичного интернет-трафика.

Вы можете найти зарезервированные диапазоны IPv4 в следующей таблице:

Блок адресов Диапазон адресов Описание
0.0.0.0/8 0.0.0.0 – 0.255.255.255 Текущая (локальная, «эта») сеть
10.0.0.0/8 10.0.0.0 — 10.255.255.255 Используется для локальной связи в частной сети
100.64.0.0/10 100.64.0.0 – 100.127.255.255 Общее адресное пространство для связи между поставщиком услуг и абонентом с помощью NAT операторского класса
127.0.0.0/8 127.0.0.0 – 127.255.255.255 Используется для обратных адресов на локальный хост
169.254.0.0/16 169.254.0.0 – 169.254.255.255 Используется для локальных адресов канала, когда IP-адрес не указан (например, сбой DHCP)
172.16.0.0/12 172.16.0.0 – 172.31.255.255 Используется для локальной связи в частной сети
192.0.0.0/24 192.0.0.0 – 192.0.0.255 Назначения протоколов IETF, DS-Lite (/29)
192.0.2.0/24 192.0.2.0 — 192.0.2.255 Присвоен статус TEST-NET-1 для документации и примеров
192.88.99.0/24 192.88.99.0 — 192.88.99.255 Зарезервировано. Ранее использовался для ретрансляции IPv6 на IPv4
192168.0.0/16 192.168.0.0 — 192.168.255.255 Используется для локальной связи в частной сети
198.18.0.0/15 198.18.0.0 — 198.19.255.255 Используется для сравнительного тестирования межсетевой связи между отдельными подсетями
198.51.100.0/24 198.51.100.0 – 198.51.100.255 Присвоен статус TEST-NET-2 для документации и примеров
203.0.113.0/24 203.0.113.0 – 203.0.113.255 Присвоен статус TEST-NET-3 для документации и примеров
224.0.0.0/4 224.0.0.0 – 239.255.255.255 Используется для многоадресной рассылки (бывшая сеть класса D)
233.252.0.0/24 233.252.0.0 – 233.252.0.255 Присвоено имя MCAST-TEST-NET для документации и примеров (часть многоадресного пространства)
240.0.0.0/4 240.0.0.0 – 255.255.255.254 Зарезервировано для будущего использования (бывшая сеть класса E)
255.255.255.255/32 255.255.255.255 Зарезервировано для адреса назначения «ограниченного вещания»

Узнайте, как сгенерировать случайный IP-адрес с помощью простого скрипта Python!

Как сгенерировать случайный IP-адрес в Python

Следуйте этому пошаговому руководству, чтобы узнать, как создать функцию генератора случайных IP-адресов Python!

Шаг №1: определение функции для генерации адресов IPv4

Адреса IPv4— это не что иное, как строки, состоящие из четырех октетов, каждый из которых находится в диапазоне от 0 до 255. Чтобы сгенерировать эти случайные числа в формате IP, вы можете использовать следующую логику:

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

randint() из случайного генерирует случайное число в диапазоне от 0 до 255. Итак, функция generate_random_ipv4() возвращает строку в следующем формате:

X.Y.Z.A 

Где XYZи A — числа от 0 до 255.

Не забудьте импортировать random из стандартной библиотеки Python:

import random

Шаг #2: добавьте логику фильтрации для зарезервированных IP-адресов

Библиотека ipaddress из стандартной библиотеки Python предоставляет класс IPv4Address . При этом используется атрибут is_reserved , который позволяет проверить, зарезервирован ли IP-адрес.

Сначала импортируйте библиотеку ipaddress :

import ipaddress

Затем используйте его для создания логики, которая многократно генерирует случайные IP-адреса до тех пор, пока не будет сгенерирован незарезервированный IP-адрес:

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

Замечательно! Функция Python для генерации случайных IP-адресов готова.

Шаг 3: протестируйте функцию

Вот как будет выглядеть ваша функция генерации случайных IP-адресов:

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

Вызовите функцию генератора случайных IP-адресов и выведите результат:

ip = generate_random_ipv4()
print(ip)

Результат будет примерно таким:

61.18.2.4

Потрясающе! Миссия выполнена.

Дополнительно: создайте генератор случайных чисел IPv6

Как и в случае с генератором IPv4, вы можете создать генератор 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

Использование случайных IP-адресов для защиты вашей личности

Реальный вопрос: зачем вам генератор случайных IP-адресов? Вот несколько возможных ответов:

  • Изучение: используйте его в качестве инструмента для понимания структуры IP-адресов и управления ими.
  • Тестирование: используйте его в процессах, требующих ввода IP-адреса или связанных с использованием IP-адресов для определенных задач, таких как проверка сетевых конфигураций, брандмауэров или других систем.

Теперь помните, что IP-адрес — это уникальный идентификатор. Разве не было бы волшебно, если бы вы могли создать случайный IP-адрес и использовать его для сокрытия своей личности? Например, во время очистки веб-страниц это поможет:

  1. Запретите целевому сайту обнаруживать автоматические запросы.
  2. Предоставьте вам практически бесконечный набор IP-адресов, с которыми можно работать, чтобы избежать мер по защите от скрейпинга, таких как ограничение скорости.

Это было бы здорово! Тем не менее, невозможно просто создать генератор случайных IP-адресов и напрямую использовать его на своем компьютере. Вместо этого вы можете направлять запросы через пул прокси-серверов.

Этот механизм позволяет убедиться, что каждый запрос, сделанный вашим компьютером, исходит с другого IP-адреса. Узнайте больше в нашем руководстве о том, как ротировать IP-адрес.

Использование прокси-серверов — это самое близкое к использованию генератора случайных IP-адресов для обеспечения безопасности и анонимности в Интернете. Многие ведущих провайдеров прокси-серверов для резидентов предлагают огромные пулы действительных IP-адресов, часто исчисляемые миллионами. Таким образом, прокси почти имеют доступ к случайным IP-адресам.

Методы случайной ротации IP-адресов

Теперь вы понимаете преимущества ротации IP-адресов по сравнению с простой генерацией IP-адресов. Давайте рассмотрим некоторые методы использования случайных IP-адресов!

VPN

VPN, сокращенно от Virtual Private Network («Виртуальная частная сеть»), скрывает ваш IP-адрес, маршрутизируя соединение через серверы в разных местах. Это дает вам доступ к случайному набору IP-адресов по всему миру.

В отличие от прокси-сервера, VPN также создает безопасный зашифрованный туннель между вашим устройством и сетью VPN. Для более подробного сравнения ознакомьтесь с нашей статьей VPN и Proxy.

👍 Плюсы:

  • Доступ к множеству IP-адресов со всего мира
  • Шифрует трафик для обеспечения конфиденциальности
  • Идеально подходит для обычного просмотра

👎 Минусы:

  • Сложно интегрировать на уровне приложений
  • Ограниченный пул IP-адресов по сравнению с прокси
  • Обнаруживаемые IP-адреса из центров обработки данных

Прокси-серверы

Прокси действует как посредник между вашим устройством и целевым сервером. Этот механизм позволяет использовать IP-адрес прокси-сервера вместо своего собственного. Это обеспечивает доступ к пулу «случайных» IP-адресов для большей анонимности и обхода ограничений.

В отличие от VPN, прокси проще интегрировать непосредственно в код, поскольку большинство HTTP-клиентов поддерживают настройку прокси-сервера. Вот пример использования для реализации ротации IP-адресов с помощью прокси с использованием запросов:

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)

Если вы не знаете, где найти ротационные прокси, ознакомьтесь с нашим руководством по лучшим ротационным прокси на рынке.

👍 Плюсы:

  • Большие надежные пулы IP-адресов
  • Высокоскоростные соединения
  • Настраиваемая частота вращения

👎 Минусы:

  • Требуется техническая настройка

API веб-парсинга

API для очистки веб-страниц предоставляет все инструменты, необходимые для упрощения процесса очистки веб-страниц. Вместо решения сложных задач, таких как управление прокси-серверами, пользовательскими агентами, капчами, мерами по борьбе с ботами и повторными попытками, вы просто вызываете API, указав целевой URL-адрес. Она возвращает HTML-содержимое страницы или автоматически извлекает данные в структурированный формат JSON.

Узнайте, почему Bright Data Scraper API является одним из лучших решений для очистки веб-страниц, предлагающим расширенное управление защитой от ботов, ротацию IP-адресов, планирование данных и многое другое.

👍 Плюсы:

  • Универсальное решение для очистки
  • Доступ к большому набору IP-адресов в вашем приложении без необходимости настройки
  • Масштабируемость для крупных проектов

👎 Минусы:

  • Заставить вас полагаться на сторонний сервис

Заключение

Из этого руководств вы узнаете, что такое IP-адрес, из чего он состоит и как создать генератор случайных IP-адресов в Python. Хотя генерировать случайные IP-адреса легко, сами по себе они не особенно полезны. Их нельзя просто использовать для переопределения личности вашего компьютера.

Этого можно добиться с помощью другого механизма: прокси-серверов. Прокси-сервер выступает в роли посредника, ретранслируя ваши запросы на целевые серверы и управляя ответами от целевого сервера обратно к вам. Таким образом, целевой сервер видит только IP-адрес прокси-сервера, а не ваш реальный.

Проблема заключается в выборе надежного поставщика прокси-серверов. Десятки поставщиков предлагают аналогичные услуги, но не все из них заслуживают доверия или эффективны. Вам нужен поставщик с надежными серверами, большим количеством IP-адресов и строгой политикой конфиденциальности. Вместо того чтобы тратить время на тестирование их всех, перейдите сразу к лучшему варианту на рынке, Bright Data.

Bright Data управляет лучшими прокси-серверами в мире, обслуживая компании из списка Fortune 500 и более 20 000 клиентов. Ее всемирная сеть прокси-серверов включает в себя:

  • Прокси для центров обработки данных — более 770 000 IP-адресов центров обработки данных.
  • Резидентные прокси — более 72 млн резидентных IP-адресов в более чем 195 странах.
  • Прокси-серверы интернет-провайдеров — более 700 000 IP-адресов интернет-провайдеров.
  • Мобильные прокси — более 7 млн мобильных IP-адресов.

В целом, это одна из крупнейших и самых надежных на рынке прокси-сетей, ориентированных на парсинг.

Создайте аккаунт Bright Data и протестируйте следующие службы парсинга с помощью пробной версии!

Кредитная карта не требуется