Skip to content
Intermediate / 7 min read

Comment créer un vérificateur de proxy IPRoyal pour HTTP, SOCKS5 et Shadowsocks

Apprenez à vérifier les proxies IPRoyal avec un script Python personnalisé. Vérifiez les points de terminaison HTTP, SOCKS5 et Shadowsocks pour la connectivité, la latence et l'anonymat IP.

SOCKS5 Scraping Web Confidentialité/Anonymat Autre

Aperçu

IPRoyal fournit des proxies résidentiels, de centre de données et ISP avec prise en charge des protocoles HTTP, SOCKS5 et Shadowsocks. Que vous fassiez du scraping, de la surveillance des résultats de recherche ou de la navigation privée, vous devez savoir que vos proxies sont actifs, rapides et ne divulguent pas votre véritable IP. Une vérification manuelle de chaque point de terminaison ne passe pas à l'échelle. Ce tutoriel vous montre comment créer un vérificateur de proxy réutilisable en Python qui teste la connectivité, mesure la latence et vérifie l'anonymat pour tout point de terminaison IPRoyal.

Prérequis

  • Python 3.8 ou version ultérieure installé sur votre système.
  • Gestionnaire de paquets pip.
  • Identifiants de proxy IPRoyal (hôte, port, nom d'utilisateur, mot de passe). Vous pouvez les copier depuis le tableau de bord IPRoyal.
  • Pour tester Shadowsocks : un client Shadowsocks tel que shadowsocks-libev (Linux/macOS) ou shadowsocks-rust.
  • Connaissance de base de la ligne de commande et de Python.

Comprendre ce qu'il faut vérifier

Un vérificateur de proxy utile doit répondre à quatre questions :

  • Connectivité : Le proxy peut-il atteindre l'internet public ?
  • Anonymat : L'IP de sortie renvoyée par un service correspond-elle à l'IP du proxy (et non à votre véritable IP) ?
  • Latence : Combien de temps prend une requête du début à la fin ?
  • Comportement DNS : Les requêtes DNS sont-elles résolues via le proxy ou localement ? (Une fuite révèle votre emplacement réel.)

Les différents protocoles nécessitent une gestion légèrement différente. Le tableau ci-dessous résume l'approche pour chaque protocole IPRoyal.

Protocole Schéma Python Gestion DNS Authentification
HTTP http:// Local ou proxy Nom d'utilisateur/mot de passe dans l'URL ou l'en-tête
HTTPS http:// (CONNECT) Local ou proxy Nom d'utilisateur/mot de passe dans l'URL ou l'en-tête
SOCKS5 socks5h:// Distant (proxy) Nom d'utilisateur/mot de passe dans l'URL
Shadowsocks SOCKS5 local après ss-local Distant Mot de passe dans la configuration

Étapes

1. Installer les dépendances Python

La bibliothèque requests gère les proxies HTTP et HTTPS. Pour SOCKS5, vous avez également besoin de requests[socks] et pysocks.

pip install requests requests[socks] pysocks

2. Collectez vos points de terminaison de proxy IPRoyal

Connectez-vous au tableau de bord IPRoyal et copiez la liste de proxies. La plupart des listes incluent des lignes au format :

host:port:username:password

Enregistrez la liste dans un fichier texte brut, par exemple proxies.txt. Si vous utilisez un format différent, ajustez le code d'analyse dans les étapes suivantes.

3. Écrivez un vérificateur de proxy HTTP de base

Créez un fichier nommé checker.py. L'extrait suivant teste un seul proxy HTTP et affiche l'IP renvoyée.

import requests
from requests.exceptions import ProxyError, ConnectTimeout

proxy_url = "http://username:password@host:port"
proxies = {
    "http": proxy_url,
    "https": proxy_url,
}

try:
    response = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)
    response.raise_for_status()
    print("Proxy works. Your IP appears as:", response.json()["origin"])
except (ProxyError, ConnectTimeout) as e:
    print("Proxy failed:", e)

Remplacez username, password, host et port par vos identifiants IPRoyal.

4. Étendez le vérificateur à SOCKS5

Pour SOCKS5, changez le schéma en socks5h://. Le h indique à requests de résoudre le DNS via le proxy, ce qui évite les fuites DNS.

proxy_url = "socks5h://username:password@host:port"
proxies = {
    "http": proxy_url,
    "https": proxy_url,
}

Exécutez le même bloc de requête. Si vous voyez une erreur Missing dependencies for SOCKS support, réinstallez requests[socks].

5. Ajoutez la mesure de latence et la vérification de l'IP

Modifiez le script pour chronométrer la requête et comparer l'IP renvoyée avec l'IP attendue du proxy. Vous pouvez stocker l'IP attendue dans votre liste de proxies ou la récupérer séparément.

import time

start = time.time()
response = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)
elapsed = time.time() - start
returned_ip = response.json()["origin"]
print(f"Latency: {elapsed:.2f}s, Returned IP: {returned_ip}")

Si l'IP renvoyée correspond à votre véritable IP, le proxy n'anonymise pas votre trafic. Vérifiez vos paramètres d'authentification et de protocole.

6. Testez les points de terminaison Shadowsocks

Shadowsocks est un tunnel, et non un protocole proxy direct. Pour vérifier un point de terminaison Shadowsocks IPRoyal, exécutez un client Shadowsocks local qui expose un proxy SOCKS5, puis testez cette adresse SOCKS5 locale.

Installez shadowsocks-libev sur Linux ou macOS (via Homebrew). Créez ensuite un fichier de configuration ss-local.json :

{
  "server": "your_iproyal_ss_server",
  "server_port": 8388,
  "local_address": "127.0.0.1",
  "local_port": 1080,
  "password": "your_password",
  "method": "aes-256-gcm"
}

Démarrez le client :

ss-local -c ss-local.json

Maintenant, traitez socks5h://127.0.0.1:1080 comme votre proxy dans le script de vérification. Si la connexion fonctionne, le tunnel Shadowsocks fonctionne.

7. Créez un vérificateur par lots avec rotation et journalisation

Pour plusieurs proxies, analysez votre fichier proxies.txt, parcourez chaque point de terminaison et enregistrez les résultats dans un fichier CSV. Cela vous aide à identifier les IP mortes et à suivre les performances au fil du temps.

import csv

with open("proxies.txt") as f:
    lines = [line.strip() for line in f if line.strip()]

results = []
for line in lines:
    host, port, user, pwd = line.split(":")
    proxy_url = f"socks5h://{user}:{pwd}@{host}:{port}"
    proxies = {"http": proxy_url, "https": proxy_url}
    try:
        start = time.time()
        r = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)
        elapsed = time.time() - start
        ip = r.json()["origin"]
        results.append((host, port, "OK", f"{elapsed:.2f}", ip))
    except Exception as e:
        results.append((host, port, "FAIL", "", str(e)))

with open("proxy_report.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["Host", "Port", "Status", "Latency(s)", "Returned IP/Error"])
    writer.writerows(results)

Exécutez le script périodiquement pour maintenir un pool de proxies sain.

Dépannage

  • 407 Proxy Authentication Required : Vérifiez le nom d'utilisateur et le mot de passe. Si votre mot de passe contient des caractères spéciaux comme @ ou :, encodez-les en URL (par exemple, @ devient %40).
  • Délai de connexion dépassé : Vérifiez que l'hôte et le port sont corrects et que votre IP est autorisée dans le tableau de bord IPRoyal si votre forfait l'exige.
  • Erreurs SOCKS5 : Assurez-vous que requests[socks] est installé. Utilisez socks5h:// pour la résolution DNS distante ; socks5:// résout le DNS localement.
  • Le client Shadowsocks ne démarre pas : Confirmez que la méthode de chiffrement correspond à votre configuration IPRoyal et que le port du serveur est ouvert. Testez avec ss-local -c ss-local.json -v pour une sortie détaillée.
  • Fuites DNS : Utilisez socks5h:// et testez avec un service de test de fuite DNS via le proxy. Si l'emplacement du résolveur diffère de l'emplacement du proxy, le DNS fuit.
  • Erreurs de certificat HTTPS : Certains proxies interceptent TLS. Pour le scraping, préférez les proxies résidentiels ou ISP qui prennent en charge HTTPS de bout en bout sans interception.

Résumé

Vous avez créé un vérificateur de proxy basé sur Python qui valide les points de terminaison HTTP, SOCKS5 et Shadowsocks d'IPRoyal. Le script mesure la latence, vérifie l'IP de sortie et enregistre les résultats pour une analyse par lots. Des vérifications régulières vous aident à éliminer les proxies morts et à maintenir des flux de scraping ou de confidentialité fiables. La large prise en charge des protocoles d'IPRoyal en fait un choix flexible pour ces tâches, et le vérificateur peut être adapté à n'importe quel fournisseur en modifiant le format de la liste de proxies.