Réponse rapide
Comment utiliser un proxy ISP statique dans du code ?
Passez l'URL du proxy http://USERNAME:PASSWORD@IP:PORT (ou socks5h:// pour SOCKS5) à votre client HTTP : --proxy de curl, l'argument proxies de Python requests, ou un agent dans Node.js. PinnedIP loue des IP ISP américaines dédiées avec les deux protocoles à partir de 2,03 $US pour 30 jours (octobre 2026) ; sans KYC, paiement en crypto.
curl
curl prend en charge les deux protocoles nativement. socks5h permet au proxy de résoudre les noms d'hôtes.
curl -s --proxy http://USERNAME:[email protected]:HTTP_PORT https://api.ipify.org?format=json
curl -s --proxy socks5h://USERNAME:[email protected]:SOCKS_PORT https://api.ipify.org?format=jsonPython (requests)
Installez requests (et requests[socks] pour SOCKS5). Une session réutilise la connexion, ce qui est courtois envers la cible et rapide.
import requests
PROXY = "http://USERNAME:[email protected]:8080" # or socks5h://...:SOCKS_PORT
session = requests.Session()
session.proxies = {"http": PROXY, "https": PROXY}
session.headers["User-Agent"] = "price-check/1.0 (contact: [email protected])"
response = session.get("https://api.ipify.org?format=json", timeout=20)
response.raise_for_status()
print(response.json()["ip"])
import itertools
import time
import requests
IPS = ["203.0.113.10", "203.0.113.11", "203.0.113.12"]
USER, PASSWORD, PORT = "USERNAME", "PASSWORD", 8080
URLS = ["https://example.com/", "https://example.org/"]
pool = itertools.cycle(IPS)
for url in URLS:
ip = next(pool)
proxy = f"http://{USER}:{PASSWORD}@{ip}:{PORT}"
r = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=20)
print(ip, url, r.status_code)
time.sleep(5) # keep a polite pace
Node.js
Le fetch intégré à Node ne prend pas d'option proxy ; utilisez le ProxyAgent du package undici pour les proxies HTTP (Node 18 ou ultérieur).
const { ProxyAgent, fetch } = require('undici');
const agent = new ProxyAgent('http://USERNAME:[email protected]:8080');
(async () => {
const res = await fetch('https://api.ipify.org?format=json', { dispatcher: agent });
const body = await res.json();
console.log(body.ip);
})();
Quelles règles s'appliquent aux requêtes automatisées ?
Envoyez les requêtes à un rythme que le site peut supporter, identifiez votre client quand c'est possible, respectez le robots.txt et les conditions du site, et ne collectez pas de données personnelles que vous n'avez pas le droit de traiter. Les portails bancaires en ligne, gouvernementaux et de paiement sont bloqués sur toutes les IP, tout comme les ports SMTP 25, 465 et 587. La liste complète figure dans la politique d'utilisation acceptable.
Exemples de code : FAQ
Pourquoi utiliser socks5h plutôt que socks5 ?
Avec socks5h, le proxy résout le nom d'hôte, donc les requêtes DNS passent aussi par l'IP américaine. Avec socks5, votre propre machine résout d'abord les noms.
Pourquoi ma requête renvoie-t-elle une erreur 407 ?
Le proxy n'a pas reçu d'identifiants valides. Vérifiez le nom d'utilisateur et le mot de passe, ou ajoutez votre propre IP en liste blanche dans l'espace client et retirez les identifiants.
Puis-je lancer de nombreuses requêtes en parallèle sur une seule IP ?
Oui, dans les limites de l'usage équitable. De nombreux sites limitent les requêtes par IP, alors répartissez le travail lourd sur plusieurs IP et gardez un rythme courtois.