【OpenWrt】批量查 IP 质量的小工具

写了个批量测机场质量的python脚本

起因:IPPure 只能看当前出口

IPPure 可以查看当前出口 IP 的一些质量信息,比如风险分、ASN、国家地区,以及是否像住宅 IP。网页很好用,但它一次只能识别「当前这条连接从哪里出去」。

后来发现它有一个公开接口:

curl -L https://my.ippure.com/v1/info

返回大概长这样:

{
  "ip": "104.28.123.123",
  "asn": 13335,
  "asOrganization": "Cloudflare, Inc.",
  "country": "United States",
  "fraudScore": 75,
  "isResidential": false
}

这就够了。既然接口返回的是“发起请求的出口 IP”,那想测哪个节点,就让这次请求从哪个节点出去。Claude启动!

工具的思路

这个脚本拿 mihomo 当临时代理引擎。原因很简单:mihomo 能直接吃常见机场订阅格式,不用自己重新解析一堆协议配置。

整体流程是:

  1. 拉取订阅,读取里面的节点;
  2. 启动一个临时 mihomo 实例;
  3. 把所有节点放进一个选择器组;
  4. 逐个切换节点;
  5. 每切到一个节点,就请求一次 IPPure API;
  6. 把结果按风险分排序,输出终端表格、CSV 和 Markdown 报表。

脚本本身只用 Python 标准库,不需要 pip install。第一次运行时会按系统和架构自动下载对应的 mihomo 二进制,Linux、macOS、Windows 的 amd64 / arm64 都能处理。

所有临时文件都放在工具目录里。删掉这个文件夹,系统里不会留下额外配置。

它会看哪些指标

我主要关心这几类信息:

字段含义
风险分IPPure 的 fraudScore,一般越低越干净
原生IPPure 返回的 isResidential,可粗略理解为是否更像住宅 / 家宽出口
机房根据 ASN 和组织名做启发式判断,不是绝对结论
ASN / 组织看出口属于哪个网络或云厂商
国家地区当前出口 IP 的地理位置
延迟mihomo 对该节点的握手延迟
状态oktimeoutfailratelimit

这里要稍微保守一点:IP 质量评分不是法律判决书。低分通常更舒服,高分通常更麻烦,但具体能不能用,还是要看你的实际场景。

使用方式

进项目目录后直接跑:

python3 check_airport.py '<订阅URL>' --name 机场名

订阅 URL 一定要加引号。很多订阅链接里带 &,不加引号会被 shell 拆开,脚本拿到的就不是完整链接。

Windows 上可以用:

python check_airport.py '<订阅URL>' --name 机场名

或者:

py check_airport.py '<订阅URL>' --name 机场名

运行中间脚本会暂停一次,提示你先关闭本机透明代理或系统代理,比如 PassWall、OpenClash、Clash for Windows、TUN 模式之类。没开代理的话,直接回车就行。

这一步不是多余的仪式感,主要有两个原因:

  1. 很多机场不允许用代理 IP 拉订阅,检测到机房出口会拒绝下发;
  2. 如果测试时还套着当前代理,可能变成“代理套代理”,延迟和可用性判断都会被污染。

跑完会得到什么

测完以后,终端会打印一张按风险分从低到高排序的表。低风险、住宅属性更明显、延迟也合适的节点,会自然排到前面。

同时,脚本会把报表写到 results/ 目录:

results/机场名-时间戳.csv
results/机场名-时间戳.md

CSV 适合后面继续筛选,Markdown 适合直接打开看,或者丢进笔记里留档。

机场节点 IP 质量批量检测流程图

几个使用提醒

第一,结果里会包含真实出口 IP 和节点相关信息,不建议随手公开。项目里已经把 results/ 放进 .gitignore,但自己转发文件时还是要留意。

第二,fraudScore 只是第三方风险评分。它适合帮你快速筛掉明显不舒服的出口,但不能保证某个网站一定放行,也不能保证某个节点永远稳定。

第三,如果节点很多,建议保留默认间隔,或者适当调大 --gap。批量请求公共接口要克制一点,工具是拿来省事的,不是拿来把别人服务打冒烟的。

第四,第一次运行需要能访问 GitHub,因为 mihomo 二进制会从 GitHub Releases 下载。后续会复用本地 bin/ 里的文件,并做校验。

代码地址

项目放在这里:

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇