Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
requests-ip-rotator — Une bibliothèque Python pour utiliser le vaste pool d'IP d'AWS API Gateway comme proxy afin de générer des IP pseudo-infinies pour le web scraping et le brute forcing. | Kitploit
Outils/GitHubGitHub/ge0rg3/requests-ip-rotator
Attaques de Mots de PasseProxies Web et InterceptionÉvasion IDS/IPSCollecte d'InformationsContournement de WAFSécurité WebTests d'IntrusionCrawler
GitHubge0rg3/requests-ip-rotator

requests-ip-rotator

Une bibliothèque Python pour utiliser le vaste pool d'IP d'AWS API Gateway comme proxy afin de générer des IP pseudo-infinies pour le web scraping et le brute forcing.

Voir le dépôt
1.7k172il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Fièrement sponsorisé par Swiftproxy

Proxies résidentiels haute performance avec un pool de plus de 80M d'IP dans plus de 195 pays — améliorez les taux de réussite des requêtes et réduisez les blocages IP lors de la collecte de données à grande échelle et de l'automatisation de navigateurs. Parfait pour une utilisation avec requests-ip-rotator, Playwright, Selenium et autres outils de scraping.

Commencez un essai gratuit →


requests-ip-rotator

Une bibliothèque Python pour utiliser le vaste pool d'IP d'AWS API Gateway comme proxy afin de générer des IP pseudo-infinies pour le web scraping et le brute forcing.

Cette bibliothèque permet à l'utilisateur de contourner les limites de débit basées sur l'IP pour les sites et services.

Les en-têtes X-Forwarded-For sont automatiquement randomisés et appliqués sauf s'ils sont fournis. En effet, sinon AWS enverrait la véritable adresse IP du client dans cet en-tête.

L'ApiGateway d'AWS envoie ses requêtes depuis n'importe quelle IP disponible — et comme l'infrastructure AWS est si vaste, elle est presque garantie d'être différente à chaque fois. En utilisant ApiGateway comme proxy, nous pouvons en tirer parti pour envoyer des requêtes depuis des IP différentes à chaque fois. Veuillez noter que ces requêtes peuvent être facilement identifiées et bloquées, car elles sont envoyées avec des en-têtes AWS uniques (par exemple "X-Amzn-Trace-Id").


Installation

Ce paquet est sur pypi, vous pouvez donc l'installer via l'une des méthodes suivantes :

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

 

Utilisation simple

root@kitploit:~
import requests
from requests_ip_rotator import ApiGateway

# Crée un objet passerelle et l'initialise dans AWS
gateway = ApiGateway("https://site.com")
gateway.start()

# Associe la passerelle à une session
session = requests.Session()
session.mount("https://site.com", gateway)

# Envoie une requête (l'IP sera randomisée)
response = session.get("https://site.com/index.php", params={"theme": "light"})
print(response.status_code)

# Supprime les passerelles
gateway.shutdown()

Utilisation alternative (démarrage et arrêt automatiques)

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)

N'oubliez pas que si les passerelles ne sont pas arrêtées via la méthode shutdown() lors de l'utilisation de la méthode n°1, vous pourriez être facturé ultérieurement.

 

Coûts

API Gateway est gratuit pour le premier million de requêtes par région, ce qui signifie que pour la plupart des cas d'utilisation, cela devrait être totalement gratuit.
Au moment de la rédaction, AWS facture environ 3 $ par million de requêtes après dépassement du niveau gratuit.
Si vos requêtes impliquent un flux de données, AWS facturera des frais de transfert de données à 0,09 $ par Go.  

Documentation

Authentification AWS

Il est recommandé de configurer l'authentification via des variables d'environnement. Avec awscli, vous pouvez exécuter aws configure pour ce faire, ou bien simplement définir vous-même les variables AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY en suivant les étapes mentionnées dans ce fil de discussion.

Vous pouvez trouver votre ID de clé d'accès et votre secret en suivant le tutoriel officiel AWS.

 

Création de l'objet ApiGateway

La classe ApiGateway peut être créée avec les paramètres optionnels suivants :

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

# Passerelle vers l'IP HTTP sortante et le port pour seulement deux régions
gateway_1 = ApiGateway("http://1.1.1.1:8080", regions=["eu-west-1", "eu-west-2"])

# Passerelle vers HTTPS google pour le pack de régions supplémentaires, avec une paire de clés d'accès spécifiée
gateway_2 = ApiGateway("https://www.google.com", regions=EXTRA_REGIONS, access_key_id="ID", access_key_secret="SECRET")

 

Démarrage de la passerelle API

Un objet ApiGateway doit ensuite être démarré à l'aide de la méthode start.
Par défaut, si une ApiGateway existe déjà pour le site, elle utilisera le point de terminaison existant au lieu d'en créer un nouveau.
Cela ne nécessite aucun paramètre, mais accepte les suivants :

root@kitploit:~
# Démarre de nouvelles instances ApiGateway pour le site, ou localise les points de terminaison existants s'ils existent déjà.
gateway_1.start()

# Démarre de nouvelles instances ApiGateway même si certaines existent déjà.
gateway_2.start(force=True)

 

Envoi de requêtes

Les requêtes sont envoyées en attachant l'objet ApiGateway à un objet Session de requests.
Le site donné dans mount doit correspondre au site passé dans le constructeur ApiGateway.

root@kitploit:~
import requests

# Envoie une requête POST vers le site créé dans gateway_1. Sera envoyée depuis une IP aléatoire.
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"})

# Envoie 127.0.0.1 comme en-tête X-Forwarded-For dans la requête sortante (sinon X-Forwarded-For est randomisé).
session_1.post("http://1.1.1.1:8080/update.php", headers={"X-Forwarded-For", "127.0.0.1"})

# Exécute une requête de recherche Google depuis une IP aléatoire
session_2 = requests.Session()
session_2.mount("https://www.google.com", gateway_2)
session_2.get("https://www.google.com/search?q=test")

 

Fermeture des ressources ApiGateway

Il est important d'arrêter les ressources ApiGateway une fois que vous avez terminé avec elles, afin d'éviter des points de terminaison publics non utilisés qui peuvent entraîner des frais supplémentaires sur votre compte.
Cela se fait via la méthode shutdown de l'objet ApiGateway. Elle fermera toutes les ressources pour les régions spécifiées dans le constructeur de l'objet ApiGateway.

root@kitploit:~
# Cela arrêtera tous les proxys de passerelle pour "http://1.1.1.1:8080" dans "eu-west-1" & "eu-west-2"
gateway_1.shutdown()

# Cela arrêtera tous les proxys de passerelle pour "https://www.google.com" pour toutes les régions dans ip_rotator.EXTRA_REGIONS
gateway_2.shutdown()

Alternativement, vous pouvez sélectivement arrêter des points de terminaison spécifiques si nécessaire. Pour ce faire, passez simplement un tableau de points de terminaison à la méthode shutdown(), par exemple :

root@kitploit:~
# Cela forcera le démarrage d'une nouvelle passerelle (c'est-à-dire créer de nouveaux points de terminaison même s'il en existe déjà dans la région), puis ne supprimera que les 3 premiers d'entre eux.
gateway_3 = ApiGateway("http://1.1.1.1:8082", regions=ALL_REGIONS)
endpoints = gateway_3.start(force=True)
gateway_3.shutdown(endpoints[:3])

Veuillez noter que toutes les passerelles démarrées avec le paramètre require_manual_deletion défini sur True ne seront pas supprimées via la méthode shutdown et doivent être supprimées manuellement via l'interface en ligne de commande AWS ou le site Web.

Médias

  • L'ordinateur d'un ingénieur logiciel de DOGE infecté par un malware voleur d'informations (NPR)
  • Le code d'un employé de DOGE soutient le lanceur d'alerte du NLRB (Krebs on Security)

Crédits

Le code de base pour la création et l'organisation des passerelles a été adapté de l'extension IPRotate Burp de RhinoSecurityLabs.
Le concept de transfert d'en-tête X-My-X-Forwarded-For a été initialement conceptualisé par ustayready dans son proxy fireprox.

Télécharger l’outil
NomDescriptionRequisPar défaut
siteLe site (sans chemin) vers lequel les requêtes seront envoyées.True
regionsUn tableau de régions AWS dans lesquelles configurer les passerelles.Falseip_rotator.DEFAULT_REGIONS
access_key_idID de clé d'accès AWS (remplacera les variables d'environnement).FalseDépend des variables d'environnement.
access_key_secretClé secrète d'accès AWS (remplacera les variables d'environnement).FalseDépend des variables d'environnement.
verboseInclure les messages de statut et d'erreur.FalseTrue
NomDescriptionRequisPar défaut
endpointsTableau de points de terminaison préexistants (par exemple de session précédente).False
forceCréer un nouvel ensemble de points de terminaison, même s'ils existent déjà.FalseFalse
require_manual_deletionBooléen indiquant si les ApiGateway doivent persister après l'appel shutdown()FalseFalse