1.
方法概览:为什么要多维度验证
- 验证目的:区分
香港原生IP与CDN/代理出口IP。
- 常见误判:CDN边缘节点或隧道会把地理位置伪装成HK。
- 建议策略:HTTP头 + ASN + whois + 路由追踪 + GeoDB 多合一判断。
- 风险提示:DDoS 防护、Anycast 和 Cloud/Overlay 网络会影响判断。
- 工具链:curl/traceroute/whois/geoiplookup/MaxMind/稽核日志。
2.
从HTTP头看线索(适合Web/反代场景)
- 使用 curl -I 获取头部:curl -I https://example.com。
- 观察关键头:Server、Via、X-Forwarded-For、CF-Ray、True-Client-IP。
- 示例(curl 输出片段):Server: nginx/1.18.0,Via: 1.1 hk-edge,X-Forwarded-For: 203.80.5.44。
- 判断要点:若存在明显 CDN 标识(Cloudflare/Quantil/HGC),则需进一步核实。
- 日志比对:查看 nginx access_log 与 upstream 连接的真实源IP是否一致。
3.
ASN 与 whois:确定运营商与地址块
- whois 查询:到 APNIC 查询 IP 的 netname 与 country。
- ASN 查验:接受路由中的 origin ASN 是否为常见香港运营商(如 PCCW/HSBC/HGC 等)。
- 示例输出(示例):inetnum: 203.80.5.0 - 203.80.5.255; country: HK; org: PCCW.
- 规则:若 ASN 与实际 ISP 匹配 HK,并且 whois country 为 HK,可信度大幅提高。
- 注意:一些云厂商会通过香港 ASN 发布 Anycast,需要配合 traceroute 判别。
4.
路由与延时测试(traceroute / ping)
- 执行:traceroute -n 203.80.5.44 或 mtr。
- 观察跳数:从国内到香港通常 6-12 跳,延迟常在 25-70ms(视网络而定)。
- 示例数据:最后一跳 RTT 平均 34ms,倒数第二跳显示 hk-pccw-AS3491。
- 判断逻辑:低延时 + 路由经过 HK IX/本地运营商,支持“原生”结论。
- 异常:若延时远低于地理预期或路由绕行美国/欧洲,可能是海外中转或隧道。
5.
地理位置数据库比对(MaxMind / IP2Location)
- 使用 MaxMind GeoIP2/GeoLite2 本地库查询 IP。
- 示例表格演示(真实案例示例数据):
| IP |
ASN |
Country |
City |
Provider/备注 |
| 203.80.5.44 |
AS3491 |
HK |
Hong Kong |
PCCW / 原生 IP(示例) |
| 104.21.34.10 |
AS13335 |
US(CDN) |
— |
Cloudflare 边缘(需警惕伪装) |
6.
真实案例与服务器配置举例
- 真实案例:通过 whois+MaxMind+traceroute 三项判断,IP 203.80.5.44 被确认归属 AS3491,whois country=HK,最后跳显示 hk-pccw。
- Nginx 示例日志配置:log_format combined_real '$remote_addr forwarded:$http_x_forwarded_for ...'; access_log /var/log/nginx/access.log combined_real;
- VPS 配置示例:Ubuntu20.04,VPS 规格 2 vCPU / 4GB RAM / 80GB SSD,带宽 1Gbps,BGP AS:AS3491(示例)。
- 运维建议:启用 GeoIP 本地库定期更新,结合自研规则打分(HTTP头、ASN、traceroute、GeoDB)得出最终置信度。
- 总结:单一方法不足信赖,建议将 HTTP 头分析、ASN/whois、路由延时与 GeoIP 数据按权重融合判断,配合日志与历史指纹提高准确率。
来源:从HTTP头到地理位置数据库教你怎么测ip是香港原生的可靠方法