Réponse rapide
Comment vérifier dans quelle ville se trouve mon IP de proxy ?
Envoyez une requête via le proxy vers un service de recherche d'IP comme ipinfo.io et lisez les champs ville, région et org (ASN) ; vérifiez ensuite la même IP dans la base de données utilisée par votre site cible. Avec MetroProxies (ciblage par ville à partir de 0,50 $US/GB, octobre 2026), comparez le résultat avec le segment city- que vous avez envoyé. Sans KYC ; crypto.
Que faut-il vérifier, et dans quel ordre ?
- Que le proxy fonctionne : vous obtenez une réponse et l'IP n'est pas la vôtre.
- L'État : presque toutes les bases de données sont d'accord là-dessus. Un État erroné signifie une requête erronée (vérifiez le segment
state-). - La ville ou le metro : la vérification la plus utile pour le travail par ville. Les banlieues sont souvent étiquetées avec la ville principale.
- Le réseau (ASN) : il indique de quel fournisseur résidentiel provient l'IP, et vous permet de le garder constant avec
asn-. - La vue de la cible : de nombreux sites affichent la localisation détectée sur la page (sélecteur de magasin, ligne « livrer à », devise ou taxe locale). C'est cette localisation qui compte.
Enregistrez l'IP, la ville, la région et l'ASN à côté de chaque résultat, pour pouvoir expliquer plus tard un point de données étrange.
curl -s --max-time 30 \
-x http://USERNAME-country-us-state-or-city-portland:[email protected]:7777 \
https://ipinfo.io/jsonComment vérifier plusieurs villes dans un script ?
L'exemple Python ci-dessous demande une IP par ville, affiche où chaque sortie se géolocalise et signale les incohérences. Il utilise requests (pip install requests), ouvre une nouvelle connexion par ville pour que chaque ville obtienne sa propre IP, et s'arrête en cas d'erreur au lieu de réessayer en boucle. Remplacez USERNAME et PASSWORD par vos identifiants de proxy depuis le tableau de bord.
import requests
GATEWAY = "gw.metroproxies.com:7777"
USER, PASSWORD = "USERNAME", "PASSWORD"
# (state code, city segment, city name as lookup services usually spell it)
CITIES = [("or", "portland", "Portland"), ("tx", "san_antonio", "San Antonio"), ("fl", "tampa", "Tampa")]
def exit_info(state: str, city: str) -> dict:
user = f"{USER}-country-us-state-{state}-city-{city}"
proxy = f"http://{user}:{PASSWORD}@{GATEWAY}"
with requests.Session() as s: # a fresh session = a fresh connection = a fresh IP
r = s.get("https://ipinfo.io/json", proxies={"http": proxy, "https": proxy}, timeout=30)
r.raise_for_status()
return r.json()
for state, segment, expected in CITIES:
try:
info = exit_info(state, segment)
except requests.RequestException as e:
print(f"{segment}: request failed ({e.__class__.__name__}); widen to the state or retry later")
continue
city, region, org = info.get("city"), info.get("region"), info.get("org")
flag = "ok" if city == expected else "check"
print(f"{segment:12} -> {info.get('ip')} {city}, {region} {org} [{flag}]")
// save as check.mjs, then: npm install undici && node check.mjs
import { ProxyAgent, fetch } from 'undici';
const gateway = 'http://gw.metroproxies.com:7777';
const user = 'USERNAME-country-us-state-co-city-colorado_springs';
const token = 'Basic ' + Buffer.from(`${user}:PASSWORD`).toString('base64');
const agent = new ProxyAgent({ uri: gateway, token });
const res = await fetch('https://ipinfo.io/json', { dispatcher: agent, signal: AbortSignal.timeout(30000) });
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const info = await res.json();
console.log(info.ip, info.city, info.region, info.org);
await agent.close();
Et si la ville ne correspond pas ?
Une incohérence est courante et généralement sans gravité ; déterminez d'abord de quel type il s'agit.
- Ville voisine ou banlieue (Mesa indiquée comme Phoenix, Hialeah comme Miami) : les bases de données tracent les limites de ville différemment. Vérifiez la vue de la cible ; si elle affiche le bon metro, tout va bien.
- Bon metro, mauvais État (Kansas City, Kansas contre Missouri) : utilisez le segment d'État et comparez avec la vue de la cible ; les zones métropolitaines traversent les frontières des États.
- Une région complètement différente : réessayez une fois avec une nouvelle connexion. Si cela se répète, envoyez l'IP, l'heure et votre nom d'utilisateur (jamais votre mot de passe) au support.
Ne choisissez pas les IP une par une jusqu'à ce qu'une base de données soit d'accord : les bases de données changent chaque semaine. Décidez quelle base de données compte pour votre travail, et acceptez la petite part d'IP qu'elle place ailleurs.
Où aller ensuite ?
Obtenez d'abord l'IP avec changer votre IP vers une autre ville, conservez-la avec les sessions sticky par ville, et découvrez pourquoi les bases de données divergent dans des proxys précis au niveau de la ville. Tous les guides sont sur la page des guides ; le code se trouve dans la doc curl et Python.
Quelles autres questions se posent sur la vérification de localisation ?
Quel service de recherche d'IP dois-je utiliser ?
Utilisez celui qui est le plus proche de votre cible : si vous testez un site qui utilise un fournisseur de géolocalisation donné, vérifiez avec ce fournisseur. Pour des vérifications générales, ipinfo.io et des services similaires renvoient la ville, la région et l'ASN dans une seule réponse JSON. Respectez les limites de débit de chaque service.
Puis-je vérifier la localisation sur Google ?
Pas avec un script. Les conditions de Google interdisent l'accès automatisé qui ignore robots.txt, et google.com/robots.txt interdit /search. Vérifiez manuellement dans un navigateur configuré sur le proxy, ou utilisez un fournisseur de données approuvé pour du volume.
Pourquoi mon navigateur affiche-t-il encore mon vrai fuseau horaire ?
Parce que le proxy ne change que l'adresse IP. Le fuseau horaire, la langue et la localisation enregistrée du navigateur viennent de votre appareil. Réglez-les pour correspondre à la ville (pour Portland, America/Los_Angeles) si la page que vous testez les lit.