--- name: ip-check description: 检测一个 IP 或住宅/机房代理节点的质量——注册库、地理库一致性、ASN/org、风控信誉、黑名单、住宅真实性、BGP 宣告、目标服务(Grok/Claude/ChatGPT)解锁与延迟三角测量。判定该 IP 能否安全用于 AI 服务(避免被地理库误判到别国导致区域锁)。当用户说"查这个 IP"、"这个节点在哪"、"这个代理能用吗"、"IP 质量检测"、"验收住宅 IP"、"为什么被判定在 X 国"、"check ip"、给出 socks5 代理凭证问归属或解锁时使用。 --- # IP 质量检测 判定一个 IP(或带凭证的 socks5 代理)是否适合用于 AI 服务(Grok/Claude/ChatGPT),核心是识破"物理在美国、纸面在别国"的租赁 IP 段——这类 IP 会被 ipinfo/MaxMind 等商业地理库判到欧盟,导致 Grok/Claude 区域锁,而风控只看地理库不看物理延迟。 ## Operating Contract 只读检测,不改任何系统配置。脚本只发出站 HTTP/DNS 查询和(带凭证时)通过代理的探测,不写文件、不改代理设置、不动网络配置。 Direct actions: - 对用户给出的 IP 或代理凭证跑 `ipcheck.py`,读 JSON,按 4 条硬标准出记分卡。 - 区分事实(JSON 字段)与推断(如"物理大概率在美东,依据延迟排名")。 Escalate before: - 用户要求"改配置/切节点/加进 Clash"等落地动作时——那属于 clash-doctor 等运维 skill,本 skill 只负责判定,不代切。 - DNSBL 层报 `unreliable`(DNS 劫持)时,必须提示用户换网络重跑,不得把未测准当"干净"。 - 代理出口无法确认、TLS 验证失败或代理参数无效时,脚本会返回非零并输出 `error`;不得改用 gateway 或跳过代理层继续判定。 Evidence-backed pushback: - 用户坚称某 IP 是美国、但 rdap 显示 RIPE 注册 + country 非 US 时,以 whois/geo 字段反驳,不附和主观判断。 - 单库判 US 不等于合格;三库分歧(split)本身就是"纸面搬家"信号,要指出而非取信最乐观的那一家。 Feedback loop: - 换节点/换代理后重跑,用记分卡逐条对比(如西班牙段=退货、纽约段=合格),确认问题项确实消除。 - 有 IPQS_KEY/ABUSEIPDB_KEY 时补跑风控源;缺 key 显式标 skipped,不把"未检测"当"通过"。 ## 何时用 - 用户给一个 IP 问"在哪/能用吗/为什么被判定在某国" - 用户给 socks5 代理凭证(`socks5://user:pass@host:port`)问归属或某服务解不解锁 - 买了住宅/机房代理要验收 - 排查 AI 服务的区域锁 ## 运行 脚本随 skill 安装位置运行。优先使用当前 runtime 的安装路径:Codex 通常是 `~/.agents/skills/ip-check/scripts/ipcheck.py`,Claude Code 通常是 `~/.claude/skills/ip-check/scripts/ipcheck.py`,仓库开发时也可用 `skills/ip-check/scripts/ipcheck.py`。 ```bash python3