Réponse rapide
Comment me connecter à une IP d'une ville européenne ?
Envoyez vos requêtes vers la passerelle EuroCity Proxies avec la ville dans le nom d'utilisateur, par exemple USERNAME-country-fr-city-paris, puis lisez https://ipinfo.io/json pour voir la sortie. Depuis octobre 2026, le ciblage par ville est inclus dans tous les forfaits et 1 GB coûte 0,95 $US. La disponibilité des villes varie ; le paiement indique ce qui est en ligne.
De quoi avez-vous besoin avant la première requête ?
| Passerelle | gw.eurocityproxies.com |
|---|---|
| Port HTTP et HTTPS | 7777 |
| Port SOCKS5 | 7778 |
| Nom d'utilisateur rotatif | USERNAME-country-fr-city-paris |
| Nom d'utilisateur sticky | USERNAME-country-fr-city-paris-session-paris1-ttl-10 |
| URL de vérification | https://ipinfo.io/json (IP, ville, région, pays, réseau) |
| Protocoles | HTTP, HTTPS (CONNECT) et SOCKS5 |
Comment se construit le nom d'utilisateur ?
Le nom d'utilisateur porte le ciblage : votre nom d'utilisateur de compte, puis -country- avec un code ISO en minuscules, puis des segments optionnels. Le segment pays est toujours obligatoire, même lorsque vous ajoutez une ville.
-city-paris: identifiant de ville en minuscules, sans accents, avec_à la place des espaces ou des tirets (-city-the_hague).-asn-<number>: un réseau, par exemple un fournisseur d'accès haut débit ; le ciblage par ASN ne coûte rien de plus (guide ASN).-session-paris1-ttl-10: une session sticky appeléeparis1qui dure jusqu'à 10 minutes. Le ttl peut monter jusqu'à 30.
Les codes pays sont en minuscules dans le nom d'utilisateur mais en majuscules dans l'API. La liste des identifiants de ville pour un pays provient de GET /api/v1/catalog/countries/FR/cities, décrite dans la documentation API. Utilisez les identifiants qu'elle renvoie ; ne devinez pas des orthographes comme kraków ou münchen.
Un nom d'utilisateur rotatif change-t-il l'IP à chaque requête ?
Il change d'IP à chaque nouvelle connexion, pas à chaque requête. Chaque nouvelle connexion reçoit une IP du pool, généralement différente ; pour obtenir une nouvelle IP à chaque requête, envoyez une requête par connexion (désactivez le keep-alive).
Cela compte dans le code. Un requests.Session, un httpx.Client ou un agent undici garde son tunnel ouvert entre les requêtes, donc la sortie reste identique. Pour une IP par requête, ouvrez un nouveau client pour chaque requête ou envoyez Connection: close. Pour une IP partagée sur plusieurs requêtes volontairement, utilisez une session sticky, expliquée dans sessions sticky par ville.
# Rotating exit in Paris (HTTP proxy, HTTPS target through CONNECT)
curl -s -x "http://USERNAME-country-fr-city-paris:[email protected]:7777" https://ipinfo.io/json
# Sticky exit in Paris: session paris1, up to 10 minutes
curl -s -x "http://USERNAME-country-fr-city-paris-session-paris1-ttl-10:[email protected]:7777" https://ipinfo.io/json
# SOCKS5 with socks5h: the proxy resolves the hostname, not your machine
curl -s -x "socks5h://USERNAME-country-fr-city-paris:[email protected]:7778" https://ipinfo.io/json
# Gateway alone, without a target site: prints only the exit IP
curl -s -x "http://USERNAME-country-fr-city-paris:[email protected]:7777" https://api.ipify.org# pip install requests
from urllib.parse import quote
import requests
HOST = "gw.eurocityproxies.com"
PORT = 7777
USER = "USERNAME-country-fr-city-paris-session-paris1-ttl-10"
PASSWORD = quote("PASSWORD", safe="") # encodes @, : and / in the password
proxy = f"http://{USER}:{PASSWORD}@{HOST}:{PORT}"
proxies = {"http": proxy, "https": proxy}
# proxies= on each call wins over HTTP_PROXY / HTTPS_PROXY set on your machine
r = requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30)
r.raise_for_status()
info = r.json()
print(info["ip"], info.get("city"), info.get("country"), info.get("org"))# pip install httpx
from urllib.parse import quote
import httpx
USER = "USERNAME-country-fr-city-paris"
PASSWORD = quote("PASSWORD", safe="")
PROXY = f"http://{USER}:{PASSWORD}@gw.eurocityproxies.com:7777"
# One client keeps its connection open (keep-alive): the three lines show one IP
with httpx.Client(proxy=PROXY, timeout=30, trust_env=False) as client:
for _ in range(3):
print("same client:", client.get("https://ipinfo.io/json").json()["ip"])
# A new client per request opens a new connection: usually a different Paris IP
for _ in range(3):
with httpx.Client(proxy=PROXY, timeout=30, trust_env=False) as client:
print("new client: ", client.get("https://ipinfo.io/json").json()["ip"])// npm install undici
import { ProxyAgent, fetch } from "undici";
const user = "USERNAME-country-fr-city-paris-session-paris1-ttl-10";
const password = encodeURIComponent("PASSWORD");
const dispatcher = new ProxyAgent(
`http://${user}:${password}@gw.eurocityproxies.com:7777`
);
try {
const res = await fetch("https://ipinfo.io/json", {
dispatcher,
signal: AbortSignal.timeout(30000), // stop after 30 s
});
const info = await res.json();
console.log(info.ip, info.city, info.country, info.org);
} finally {
await dispatcher.close();
}# pip install "requests[socks]"
from urllib.parse import quote
import requests
HOST = "gw.eurocityproxies.com"
SOCKS_PORT = 7778
USER = "USERNAME-country-fr-city-paris"
PASSWORD = quote("PASSWORD", safe="")
# socks5h: the proxy resolves the hostname, not your machine
proxy = f"socks5h://{USER}:{PASSWORD}@{HOST}:{SOCKS_PORT}"
r = requests.get("https://ipinfo.io/json", proxies={"http": proxy, "https": proxy}, timeout=30)
print(r.json())Quels détails ces exemples gèrent-ils ?
Les exemples gèrent les détails qui cassent le plus souvent une première connexion :
- Encoder le mot de passe.
quote("PASSWORD", safe="")en Python etencodeURIComponenten Node empêchent des caractères comme@ou:de casser l'URL du proxy. - Variables proxy sur votre machine. Dans requests, une valeur définie dans
session.proxiespeut être écrasée parHTTPS_PROXY. Passezproxies=à chaque appel, ou définisseztrust_env = Falsesur la session. - Toujours un timeout. Chaque exemple s'arrête au bout de 30 secondes au lieu de rester bloqué.
- Le top-level await nécessite un module. Enregistrez l'exemple Node sous
.mjset exécutez-le avec Node.js 22 ou plus récent. - socks5h, pas socks5. Avec
socks5://, requests et curl résolvent le nom d'hôte sur votre machine. Avecsocks5h://, c'est le proxy qui le résout.
Puis-je utiliser le port SOCKS5 dans un navigateur ?
Utilisez plutôt le port HTTP 7777 dans les navigateurs. La documentation proxy de Chromium indique que Chrome ne prend en charge aucune méthode d'authentification pour SOCKS5. Un nom d'utilisateur et un mot de passe sur le port 7778 n'y fonctionneront pas.
Sur un iPhone ou un iPad, les réglages Wi-Fi proposent un proxy HTTP manuel avec authentification. Pour l'émulateur Android, démarrez-le avec -http-proxy http://USERNAME-country-fr-city-paris:[email protected]:7777. La page de test géographique de l'appli couvre les appareils plus en détail.
Que doit afficher la sortie ?
Le JSON de https://ipinfo.io/json doit afficher "country": "FR" et, la plupart du temps, Paris ou une commune de la région parisienne comme city. Le champ org commence par l'ASN du réseau, tel qu'un fournisseur d'accès français.
Une commune voisine au lieu de Paris est normal : les bases de données de géolocalisation placent de nombreuses IP résidentielles au hub local du fournisseur. Le guide de la ville de sortie montre comment comparer deux sources, et pourquoi une IP affiche une commune voisine en explique les causes.
Questions de démarrage rapide
Pourquoi ma requête échoue-t-elle avec 407 Proxy Authentication Required ?
Un 407 signifie que le proxy n'a pas accepté le nom d'utilisateur ou le mot de passe. Vérifiez que le nom d'utilisateur commence par le nom d'utilisateur de votre compte, que -country- est présent et que les caractères spéciaux du mot de passe sont encodés en URL. Recopiez les deux valeurs depuis le tableau de bord.
Pourquoi obtient-on une IP allemande alors que j'ai demandé Paris ?
Généralement une faute de frappe dans le nom d'utilisateur, comme -country-de laissé d'un autre test, ou un identifiant de ville inexistant. Affichez le nom d'utilisateur avant la requête. Si ipinfo.io et une seconde source indiquent tous deux un autre pays, écrivez au support avec l'heure et l'IP de sortie.
Combien de temps une session sticky Paris peut-elle durer ?
Une session sticky conserve la même IP jusqu'à 30 minutes (l'IP peut changer plus tôt, par exemple si l'appareil résidentiel passe hors ligne). Définissez la durée avec -ttl- en minutes, par exemple -ttl-10 ou -ttl-30. Ne comptez pas sur une session pour durer plus longtemps que le ttl que vous avez défini.
Le ciblage par ville est-il facturé en supplément ?
Non. Ciblage par pays et par ville sur tous les plans ; aux États-Unis également par État et code ZIP ; ciblage par ASN sans surcoût. La disponibilité des villes varie. Le prix par GB est le même avec ou sans ville. La page de tarifs indique 0,95 $US pour 1 GB et 8 $US pour 10 GB.
Combien de trafic ce démarrage rapide consomme-t-il ?
Très peu : chaque requête vers https://ipinfo.io/json déplace quelques kilo-octets, en-têtes et TLS compris. L'usage compte toutes les données envoyées et reçues via le proxy (upload et download, en-têtes inclus). 1 GB = 1 000 000 000 octets. Les tentatives de connexion qui échouent avant d'atteindre la cible ne sont pas comptées.
Puis-je me connecter avec une liste d'IP autorisées au lieu d'un mot de passe ?
Oui. Nom d'utilisateur et mot de passe sur tous les plans, ou une liste blanche d'IP (jusqu'à 10 IP). Sous-utilisateurs avec leurs propres identifiants et plafond de trafic. Clés API révocables à tout moment. La documentation explique comment définir le pays et la ville lorsque vous vous connectez depuis une IP autorisée. Les exemples de cette page utilisent un nom d'utilisateur et un mot de passe car ils fonctionnent depuis n'importe quelle machine.
Comment payer le premier gigaoctet ?
Choisissez un forfait, puis rechargez son prix en BTC, USDT, USDC, ETH, SOL, LTC (25 $US minimum). Envoyez le montant exact et cliquez sur I've sent the payment ; la recharge est rapprochée par son montant exact et créditée une fois confirmée. Sans KYC : ni pièce d'identité, ni selfie, ni document à signer pour s'inscrire, déposer ou acheter.
Sources (10)
- page de manuel curl : --proxy, socks5h:// et --socks5-hostname — curl project (checked 2026-10-18)
- Requests : Advanced Usage, Proxies et SOCKS — Python Software Foundation / Requests (checked 2026-10-18)
- HTTPX : Proxies — Encode (checked 2026-10-18)
- documentation de undici ProxyAgent — Node.js project (checked 2026-10-18)
- Versions de Node.js (lignes de version prises en charge) — OpenJS Foundation (checked 2026-10-18)
- Prise en charge du proxy dans Chrome (authentification SOCKSv5) — The Chromium Projects (checked 2026-10-18)
- Configurer un proxy pour l'Android Emulator — Google / Android Developers (last updated 2026-03-12, checked 2026-10-18)
- Réglages de la charge utile de gestion de l'appareil Global HTTP Proxy (iOS, iPadOS : proxy manuel avec nom d'utilisateur et mot de passe) — Apple Platform Deployment (checked 2026-10-18)
- RFC 9110 HTTP Semantics, section 9.3.6 CONNECT et statut 407 — IETF (June 2022, checked 2026-10-18)
- Point de terminaison JSON IPinfo — IPinfo (checked 2026-10-18)