快速解答
如何检查我的代理出口 IP 位于哪个城市?
通过代理访问 https://ipinfo.io/json 读取出口,然后在第二个数据库(如 MaxMind GeoLite)中查询同一个 IP。在 RIPEstat 上检查其网络。截至 2026 年 10 月,EuroCity Proxies 的出口都是家庭 IP。预期得到正确的国家和消费级网络,城市为你所请求的城市或附近城镇。
城市检查有哪些步骤?
打开一个粘性会话
使用诸如
USERNAME-country-de-city-munich-session-muc1-ttl-10的用户名,让每次查询都看到同一个出口 IP。通过代理读取来源 1
请求
https://ipinfo.io/json并记录ip、city、region、country和org。为同一 IP 读取来源 2
在本地 MaxMind GeoLite City 文件中查询该 IP,或从浏览器用 DB-IP 或 ip-api 查询。
在 RIPEstat 上检查网络
在 stat.ripe.net 输入该 IP,读取前缀、ASN 和持有者名称。
对比并决定
使用下表:附近城镇属于正常,其他国家或托管网络则不正常。
# pip install requests geoip2
# GeoLite2-City.mmdb and GeoLite2-ASN.mmdb: download them from your MaxMind account
from urllib.parse import quote
import geoip2.database
import requests
HOST = "gw.eurocityproxies.com"
PORT = 7777
USER = "USERNAME-country-de-city-munich-session-muc1-ttl-10"
PASSWORD = quote("PASSWORD", safe="")
proxy = f"http://{USER}:{PASSWORD}@{HOST}:{PORT}"
# Source 1: IPinfo, read through the proxy
info = requests.get("https://ipinfo.io/json", proxies={"http": proxy, "https": proxy}, timeout=30).json()
ip = info["ip"]
# Source 2: MaxMind GeoLite, read from local files (no request leaves your machine)
with geoip2.database.Reader("GeoLite2-City.mmdb") as city_db:
c = city_db.city(ip)
with geoip2.database.Reader("GeoLite2-ASN.mmdb") as asn_db:
a = asn_db.asn(ip)
print("exit IP ", ip)
print("IPinfo ", info.get("city"), info.get("region"), info.get("country"), info.get("org"))
print("GeoLite ", c.city.name, c.country.iso_code, f"radius {c.location.accuracy_radius} km")
print("GeoLite ASN ", f"AS{a.autonomous_system_number}", a.autonomous_system_organization)我可以对比哪些地理位置数据库?
每个发布方对自身准确度的描述方式各不相同。以下说明取自其各自页面,阅读时间为 2026 年 10 月 18 日。
| 来源 | 查询方式 | 发布方对准确度的说明 |
|---|---|---|
| MaxMind GeoLite | 免费账户、可下载文件或 Web 服务(每项服务每天 1,000 次查询) | “本质上不精确”,位置通常靠近人口中心。准确度半径从几公里到 1,000 公里。GeoLite City 的准确度明显低于付费的 GeoIP City |
| IPinfo | 针对你自己的出口 IP 使用 https://ipinfo.io/json,或其 API | 返回以公里为单位的准确度半径;数据每 24 小时更新一次;农村地区的准确度低于城市地区 |
| DB-IP | db-ip.com 上的查询表单、API 或每月下载 | 部分提供商可达到街道级,大多数为城市级,极少数情况下为国家/地区级;固网通常比蜂窝网络更准确 |
| ip-api | 仅支持通过 HTTP 访问的免费 JSON 端点,每分钟 45 次请求,不得用于商业用途 | 未公布准确度数字;更正由人工核查,最多可能需要 7 天 |
| RIPEstat (RIPE NCC) | stat.ripe.net 或其 Data API | 不是地理位置数据库:它显示前缀、ASN 和网络持有者 |
为什么要对比两个来源而不是一个?
因为地理位置数据库之间并不一致,而目标网站可能使用第三个数据库。每家公司都根据自己的注册数据、网络测量、提供商数据源和用户更正来构建自己的地图。两个来源在同一城镇上一致,就能给你一个可靠的结果。
你正在检查的网站会使用一个数据库,通常是商业数据库,而你很少知道是哪一个。MaxMind 自己对法国的对比显示,其付费和免费城市数据库存在差异。它们将其检查的 IP 中分别有 50% 和 42% 定位在 50 公里以内。准确度指南给出了六个国家的数据。
如何在 RIPEstat 上检查网络所有者?
打开 stat.ripe.net,将出口 IP 粘贴到搜索框中。RIPEstat 由 RIPE NCC 运营,后者是负责在欧洲分配 IP 地址的区域互联网注册管理机构。
有三个字段很重要。前缀是地址块,例如 /21。ASN 是宣告该地址块的网络。持有者标明公司名称,例如某家全国性宽带提供商。对于脚本,Data API 在 https://stat.ripe.net/data/network-info/data.json?resource= 后接 IP 处返回相同答案。
ASN 应与 IPinfo 的 org 字段以及 GeoLite ASN 相匹配。住宅出口属于消费级提供商。如果持有者是托管公司或云网络,就应联系支持团队。ASN 定向在 ASN 定向页面上有说明。
来源之间的差异意味着什么?
| 你看到的情况 | 通常意味着什么 | 该怎么做 |
|---|---|---|
| 同一国家/地区,同一城市 | 结果干净 | 无需操作;保留该会话用于你的检查 |
| 同一国家/地区,城镇相距 10–50 公里 | 对都市圈来说属正常:各数据库将该 IP 定位在提供商网络的不同节点 | 接受它;以目标网站显示的内容为准 |
| 同一国家/地区,城市相距很远 | 某个数据库将该提供商的整个地址块映射到区域枢纽或首都 | 打开新的会话 ID 并再次检查 |
| 一个数据源没有城市 | 该数据库没有该网段的城市级数据 | 依靠另一个数据源和目标网站 |
| 不同国家 | -country- 网段错误,或数据库错误 | 打印你的用户名;如果正确,将 IP 和时间发送给支持团队 |
| 持有者是托管或云服务公司 | 不是家庭连接 | 停止操作,并将 IP 和时间写信给支持团队 |
目标网站本身显示什么?
最终的检验是你关心的那个页面。商店可能会提示配送区域、附近分店或货币。搜索引擎可能会在结果底部显示它估算的位置。Google 的帮助页面将你连接的 IP 地址列为其用来估算你所在位置的信号之一。
网站还会读取语言、时区和 cookie。在判断页面之前,请清除 cookie 并设置该市场的浏览器语言。对于条款或 robots.txt 禁止自动访问的网站,请保持手动和偶尔检查。
城市检查会消耗多少流量?
在 https://ipinfo.io/json 查询一次只移动几 KB,因此数百次检查只占用 1 GB 的一小部分。GeoLite 对比在你的机器上运行,不消耗代理流量。用量统计通过代理发送和接收的所有数据(上传和下载,包括标头)。1 GB = 1,000,000,000 字节。在到达目标之前失败的连接尝试不计入。
按 US$0.95 每 1 GB 计算,这些检查的成本远低于你随后打开的页面。价格和套餐见定价页面。
出口城市检查:问题
我请求的是慕尼黑,但 IPinfo 显示 Freising。定向错了吗?
可能没有。Freising 是慕尼黑北部的城镇,位于同一地区。数据库通常会将 IP 定位到提供商本地网络所在的城镇。检查第二个数据源;如果两者都显示远离慕尼黑的城市,请打开新的 session id。
当两个数据库不一致时,哪个数据源是对的?
从定义上讲,两者都不对:它们都是估算。相信目标网站显示的结果,因为那才是改变你页面的结果。使用数据库来捕捉大错误,例如另一个国家或托管网络。
检查城市需要使用付费数据库吗?
不需要。免费的 MaxMind GeoLite 账户和 IPinfo JSON 端点足以进行偶尔的检查。MaxMind 表示其免费 GeoLite City 不如付费 GeoIP City 准确,因此请将 GeoLite 视为第二意见。
为什么检查时要使用粘性会话?
这样两次查询和你的页面访问都会看到相同的出口 IP。使用轮换用户名时,每个新连接通常会获得不同的 IP,你就会比较两个不同的地址。
RIPEstat 能告诉我城市吗?
不能。RIPEstat 显示谁持有和宣告地址块,而不是用户住在哪里。用它来确认消费者网络及其 ASN,用地理位置数据库来确定城市。
如果国家错误,我应该向支持团队发送什么?
出口 IP、不含密码的完整用户名、带时区的时间,以及两个查询服务的输出。这足以追踪会话。写信至 [email protected]。
来源 (11)
- GeoLite 免费地理位置数据(精度半径、GeoLite 与 GeoIP、限制) — MaxMind (checked 2026-10-18)
- GeoIP 精度比较,法国,50 km,所有连接类型 — MaxMind (read 2026-10-18 (no date on the page))
- GeoIP2 Python API:数据库用法(城市和 ASN 读取器) — MaxMind (checked 2026-10-18)
- IP Geolocation API(精度半径、数据每 24 小时更新、农村精度) — IPinfo (checked 2026-10-18)
- DB-IP FAQ:数据库中的位置有多准确? — DB-IP (checked 2026-10-18)
- ip-api JSON 端点文档(仅 HTTP,每分钟 45 次请求,禁止商业使用) — ip-api (checked 2026-10-18)
- ip-api 数据更正表单 — ip-api (checked 2026-10-18)
- RIPEstat — RIPE NCC (checked 2026-10-18)
- 我们做什么:区域互联网注册管理机构 — RIPE NCC (checked 2026-10-18)
- RIPEstat Data API:Network Info — RIPE NCC (checked 2026-10-18)
- 在 Google 搜索时了解和管理你的位置 — Google Search Help (checked 2026-10-18)