
1) 本地命令行工具:准备 Linux/Mac 终端或 Windows 的 WSL。安装:
- whois:apt-get install whois 或 brew install whois
- traceroute / mtr:apt-get install traceroute mtr
- geoiplookup 或 libmaxminddb:apt-get install geoip-bin libmaxminddb-utils
2) API/在线服务账号(推荐注册免费额度):
- ipinfo.io、ipapi.co、ipstack、ipgeolocation.io(获取 API key)
3) 可选:下载 MaxMind GeoLite2-City.mmdb,用于离线核验(需注册并同意条款)。
1) 打开浏览器访问 ipinfo.io/目标IP 或 使用 curl:
curl https://ipinfo.io/1.2.3.4/json
2) 读取字段:country (JP 表示日本)、region/city、org(通常含 ISP 名称)、loc(经纬度)。
3) 交叉核对:再调用 ipapi 或 ipstack,比较 city/lon/lat 与 org 是否一致,若多家结果一致可信度高。
1) 在终端执行:whois 1.2.3.4
2) 查找关键字段:NetName/descr/OrgName、country、origin(AS 列表)。
3) 若 whois 返回 APNIC 或 JPNIC 的组织名(如 "KDDI CORPORATION", "NTT DOCOMO", "IIJ" 等),则很可能为日系 ISP;若返回 Cloud/Datacenter 公司名(如 "Hetzner", "DigitalOcean" 等),则非原生家庭/移动节点。
1) 使用 apnic 做更精确的路由块查询:whois -h whois.apnic.net 1.2.3.4
2) 查看 "inetnum"、"route"、"descr" 字段,确认 IP 块归属(APNIC 下的日本组织)。
3) 若看到 "country: JP" 且描述为日本公司,则为原生日本 IP。若属其他国家或为 CDN/Cloud,需谨慎判定。
1) 从 whois 或 ipinfo 的 org 字段获得 AS 编号(如 ASXXXXX)。
2) 在 bgp.he.net 或 bgpview.io 查询 AS 名称与公告前缀,判断是否为大型日本运营商(NTT、KDDI、SoftBank、IIJ、Rakuten)或海外云供应商。
3) 若 AS 的 route origin 指向日系运营商,可信度高;若为 Cloud/Transit AS,可能非家庭/移动原生节点。
1) 使用 traceroute 或 mtr:traceroute -n 1.2.3.4 或 mtr -n -c 10 1.2.3.4
2) 观察最后几跳的 AS 或域名:若出现 .jp 域名或日本 ISP 的 ASN 前缀,说明路由确实进入日本。
3) 检查 RTT:来自亚洲节点到日本通常 RTT 在 10-100ms 范围(取决地区),过低或过高都需结合地理数据判断。
1) 执行 dig -x 1.2.3.4 +short 查看 PTR,若含 .adsl.、.home.、.ocn.ne.jp 等家宽标识,可能为住宅宽带。
2) 使用 nmap -sV 检测常见服务,若端口仅开放常用端口且 banner 指示家庭路由器,辅助判断。
3) CDN/Cloud 往往有统一的 PTR 命名或大段 IP,同样通过 whois/ASN 对比可区分。
1) 下载 GeoLite2-City.mmdb 并安装 libmaxminddb-utils。
2) 使用 mmdblookup --file GeoLite2-City.mmdb --ip 1.2.3.4 查看 city/country/latitude/longitude。
3) 在审计中将本地库结果与在线 API 结果对比,若有偏差记录版本号与查询时间。
1) 编写 bash 脚本循环读取 IP 列表:for ip in $(cat ips.txt); do ... done。
2) 对每个 IP 执行:curl ipinfo、whois、mmdblookup、traceroute(保存 JSON/文本到文件)。
3) 输出统一格式(CSV/JSON),字段包含 ip,country,city,org,asn,lat,lon,traceroute_summary,whois_raw,便于后续分析和证据存档。
1) 每次查询保留时间戳与工具版本(API key、MaxMind 数据库版本、whois 输出)。
2) 存储截图、命令输出与 JSON 原始数据,注明查询者与目的(合规重要)。
3) 在结论中同时列出:地理判断(country/city)、ISP 判断(AS/org)、路由/延迟证据、可信度评分与可能的异议点(例如 CDN 或 VPN 干扰)。
1) 小心 CDN/代理/VPN 导致的地理偏差:若 org 为 Cloud/Proxy,需额外检测 TLS 证书颁发地、HTTP 头或做 bait 请求验证。
2) 地理库更新滞后:定期更新本地 GeoIP 数据库并记录版本。
3) 综合多源信息判断,不要仅依赖单一 API,审计只给出“很可能”或“不确定”的结论并说明依据。
问:如何一步步判断一个 IP 是否为日本本地(native)节点?
答:先用 ipinfo/ipapi 得到 country=JP 与 org 名称;再用 whois(或 whois.apnic.net)确认 inetnum 与 descr 包含日系 ISP;随后用 traceroute/mtr 看最后几跳是否进入 .jp AS 并观察 RTT 范围;最后用逆向 DNS、AS 名称结合 MaxMind 离线库做交叉核验。若多项一致且 AS 属主要日本运营商,判断为日本本地节点可信度高。
问:审计时常用的免费或有免费额度的在线 API 有哪些,如何使用?
答:推荐 ipinfo.io(有免费额度)、ipapi.co、ipstack(基础免费)、ipgeolocation.io。使用方式通常为 curl https://ipinfo.io/1.2.3.4/json 或带上 API key 的请求,建议并行调用多家服务并记录响应来提高准确性。
问:把上面所有查询结果放到审计报告时,如何规范保存与呈现以便复核?
答:统一导出 JSON/CSV,保存原始命令输出与截图,注明查询时间、使用的 API 及数据库版本(如 MaxMind 数据库版本号)、执行者;报告中给出结论、证据列表(whois 摘要、ASN 链接、traceroute 区间截图、逆 DNS 记录)并评估可信度及可能异常,所有文件按案件编号归档以便后续复核。