Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
requests-ip-rotator — Библиотека Python для использования большого пула IP-адресов AWS API Gateway в качестве прокси для создания псевдобесконечных IP-адресов для веб-скрапинга и брутфорса. | Kitploit
Инструменты/GitHubGitHub/ge0rg3/requests-ip-rotator
Атаки на ПаролиВеб-прокси и перехватОбход IDS/IPSСбор информацииОбход WAFВеб-безопасностьТестирование на ПроникновениеКраулер
GitHubge0rg3/requests-ip-rotator

requests-ip-rotator

Библиотека Python для использования большого пула IP-адресов AWS API Gateway в качестве прокси для создания псевдобесконечных IP-адресов для веб-скрапинга и брутфорса.

Репозиторий
1.7k1721 месяц назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

С гордостью спонсируется Swiftproxy

Высокопроизводительные резидентные прокси с пулом более 80 млн IP-адресов в 195+ странах — повысьте успешность запросов и снизьте количество блокировок по IP при масштабном сборе данных и автоматизации браузера. Идеально подходит для использования с requests-ip-rotator, Playwright, Selenium и другими инструментами для парсинга.

Начать бесплатную пробную версию →


requests-ip-rotator

Библиотека Python, использующая большой пул IP-адресов AWS API Gateway в качестве прокси для генерации псевдобесконечных IP-адресов для веб-скрапинга и брутфорса.

Эта библиотека позволяет пользователю обходить IP-ограничения скорости для сайтов и сервисов.

Заголовки X-Forwarded-For автоматически рандомизируются и применяются, если не указаны. В противном случае AWS будет отправлять истинный IP-адрес клиента в этом заголовке.

AWS ApiGateway отправляет запросы с любого доступного IP-адреса — и поскольку инфраструктура AWS настолько велика, почти гарантированно, что каждый раз он будет разным. Используя ApiGateway в качестве прокси, мы можем воспользоваться этим для отправки запросов с разных IP-адресов каждый раз. Обратите внимание, что такие запросы могут быть легко идентифицированы и заблокированы, поскольку они отправляются с уникальными заголовками AWS (например, X-Amzn-Trace-Id).


Установка

Этот пакет находится на PyPI, поэтому вы можете установить его любым из следующих способов:

  • pip3 install requests-ip-rotator
  • python3 -m pip install requests-ip-rotator

 

Простое использование

root@kitploit:~
import requests
from requests_ip_rotator import ApiGateway

# Create gateway object and initialise in AWS
gateway = ApiGateway("https://site.com")
gateway.start()

# Assign gateway to session
session = requests.Session()
session.mount("https://site.com", gateway)

# Send request (IP will be randomised)
response = session.get("https://site.com/index.php", params={"theme": "light"})
print(response.status_code)

# Delete gateways
gateway.shutdown()

Альтернативное использование (автозапуск и завершение)

root@kitploit:~
import requests
from requests_ip_rotator import ApiGateway

with ApiGateway("https://site.com") as g:
    session = requests.Session()
    session.mount("https://site.com", g)

    response = session.get("https://site.com/index.php")
    print(response.status_code)

Пожалуйста, помните, что если шлюзы не будут завершены через метод shutdown() при использовании метода №1, в будущем может быть взимана плата.

 

Стоимость

API Gateway бесплатен для первого миллиона запросов на регион, что означает, что для большинства случаев использования это должно быть совершенно бесплатно.
На момент написания AWS взимает около $3 за миллион запросов после превышения бесплатного лимита.
Если ваши запросы включают потоковую передачу данных, AWS взимает плату за передачу данных в размере $0,09 за ГБ.  

Документация

Аутентификация AWS

Рекомендуется настроить аутентификацию через переменные окружения. С помощью awscli вы можете выполнить aws configure, или же вы можете просто задать переменные AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY самостоятельно, следуя шагам, описанным в этой теме.

Вы можете найти свой идентификатор ключа доступа и секрет, следуя официальному руководству AWS.

 

Создание объекта ApiGateway

Класс ApiGateway может быть создан со следующими необязательными параметрами:

root@kitploit:~
from ip_rotator import ApiGateway, EXTRA_REGIONS, ALL_REGIONS

# Gateway to outbound HTTP IP and port for only two regions
gateway_1 = ApiGateway("http://1.1.1.1:8080", regions=["eu-west-1", "eu-west-2"])

# Gateway to HTTPS google for the extra regions pack, with specified access key pair
gateway_2 = ApiGateway("https://www.google.com", regions=EXTRA_REGIONS, access_key_id="ID", access_key_secret="SECRET")

 

Запуск API шлюза

Затем объект ApiGateway необходимо запустить с помощью метода start.
По умолчанию, если ApiGateway уже существует для сайта, он будет использовать существующую конечную точку вместо создания новой.
Это не требует параметров, но принимает следующие:

root@kitploit:~
# Starts new ApiGateway instances for site, or locates existing endpoints if they already exist.
gateway_1.start()

# Starts new ApiGateway instances even if some already exist.
gateway_2.start(force=True)

 

Отправка запросов

Запросы отправляются путем присоединения объекта ApiGateway к объекту Session библиотеки requests.
Сайт, указанный в mount, должен совпадать с сайтом, переданным в конструктор ApiGateway.

root@kitploit:~
import requests

# Posts a request to the site created in gateway_1. Will be sent from a random IP.
session_1 = requests.Session()
session_1.mount("http://1.1.1.1:8080", gateway_1)
session_1.post("http://1.1.1.1:8080/update.php", headers={"Hello": "World"})

# Send 127.0.0.1 as X-Forwarded-For header in outbound request (otherwise X-Forwarded-For is randomised).
session_1.post("http://1.1.1.1:8080/update.php", headers={"X-Forwarded-For", "127.0.0.1"})

# Execute Google search query from random IP
session_2 = requests.Session()
session_2.mount("https://www.google.com", gateway_2)
session_2.get("https://www.google.com/search?q=test")

 

Закрытие ресурсов ApiGateway

Важно завершить ресурсы ApiGateway после завершения работы с ними, чтобы избежать висящих публичных конечных точек, которые могут привести к излишним расходам на вашем аккаунте.
Это делается с помощью метода shutdown объекта ApiGateway. Он закроет все ресурсы для регионов, указанных в конструкторе объекта ApiGateway.

root@kitploit:~
# This will shutdown all gateway proxies for "http://1.1.1.1:8080" in "eu-west-1" & "eu-west-2"
gateway_1.shutdown()

# This will shutdown all gatewy proxies for "https://www.google.com" for all regions in ip_rotator.EXTRA_REGIONS
gateway_2.shutdown()

В качестве альтернативы вы можете выборочно завершить определенные конечные точки, если это необходимо. Для этого просто передайте массив конечных точек в метод shutdown(), например:

root@kitploit:~
# This will force start a new gateway (i.e. create new endpoints even if some exist on the region already), and then delete the first 3 of them only.
gateway_3 = ApiGateway("http://1.1.1.1:8082", regions=ALL_REGIONS)
endpoints = gateway_3.start(force=True)
gateway_3.shutdown(endpoints[:3])

Имейте в виду, что любые шлюзы, запущенные с параметром require_manual_deletion, установленным в True, не будут удалены через метод shutdown и должны быть удалены вручную через AWS CLI или веб-сайт.

Медиа

  • Компьютер инженера-программиста DOGE заражен вредоносным ПО для кражи информации (NPR)
  • Код сотрудника DOGE подтверждает заявления разоблачителя NLRB (Krebs on Security)

Благодарности

Основной код создания и организации шлюза был адаптирован из расширения Burp IPRotate Burp Extension от RhinoSecurityLabs.
Концепция пересылки заголовка X-My-X-Forwarded-For была изначально предложена ustayready в его прокси fireprox.

Скачать инструмент
ИмяОписаниеОбязательноПо умолчанию
siteСайт (без пути), на который будут отправляться запросы.Да
regionsМассив регионов AWS для создания шлюзов.Нетip_rotator.DEFAULT_REGIONS
access_key_idИдентификатор ключа доступа AWS (переопределит переменные окружения).НетЗависит от переменных окружения.
access_key_secretСекретный ключ доступа AWS (переопределит переменные окружения).НетЗависит от переменных окружения.
verboseВключать сообщения о статусе и ошибках.НетTrue
ИмяОписаниеОбязательноПо умолчанию
endpointsМассив уже существующих конечных точек (например, из предыдущей сессии).Нет
forceСоздать новый набор конечных точек, даже если некоторые уже существуют.НетFalse
require_manual_deletionЛогическое значение, указывающее, должны ли ApiGateway сохраняться при вызове shutdown.НетFalse