513 字
3 分钟
PingTools延迟测试工具

PingTools#

bcsm114514
/
PingTools
Waiting for api.github.com...
00K
0K
0K
Waiting...

🎯 一个支持多协议、多输出格式的并发 IP/域名延迟测试脚本,适用于 IPv4 与 IPv6,支持 IP 段解析、域名自动识别、结果筛选与导出。

✨ 功能特点#

  • ✅ 支持三种测试模式:UDP / TCP / Ping
  • 🌐 支持 IPv4 / IPv6 / 域名 / CIDR 解析
  • 🚀 多线程并发测试(默认最大 50 线程)
  • 📂 支持导出 CSV 和 JSON 文件
  • 🎯 支持指定端口、最小/最大延迟过滤、输出前 N 个结果
  • 🧠 自动去重、域名智能解析为多个 IP
  • ⚠️ 可限制 IPv6 地址段的采样数量,避免 /32 等超大范围导致卡顿
  • 🖥️ 控制台美观显示测试进度与结果

🔧 安装依赖#

Terminal window
pip install tqdm tabulate

建议使用 Python 3.7 以上版本

📥 输入格式#

ip.txt 文件中填写要测试的地址,每行一个,支持以下格式:

1.1.1.1
google。com
2408:XXX:XXX::/48
192.168.0.0/24

🚀 使用方法#

Terminal window
python ping.py --mode udp --port 443 --top 10 --output good.csv --failed bad.csv --json good.json --min 10 --max 200

参数说明#

参数含义示例必须
--mode测试模式 udp / tcp / ping--mode tcp必须
--port指定端口 (仅用于 udp/tcp)--port 443可选
--top输出延迟最小前 N 个 IP--top 10可选
--output成功结果 CSV 文件--output good.csv可选
--failed失败结果 CSV 文件--failed failed.csv可选
--json导出 JSON 文件--json result.json可选
--min最小延迟过滤(单位:ms)--min 10可选
--max最大延迟过滤(单位:ms)--max 200可选
--ipv6-limit每个 IPv6 地址段最多采样多少个 IP(默认10,设为0表示不限制)--ipv6-limit 0可选
--verbose是否显示详细控制台信息--verbose可选

📦 输出示例#

控制台输出:

⏳ 正在进行 TCP 测试,共 124 个 IP...
📋 前 10 个成功 IP:
+---------------+--------------+----------+
| IP | Latency(ms) | Status |
+---------------+--------------+----------+
| 1.1.1.1 | 18.56 | Success |
| 8.8.8.8 | 24.01 | Success |

🧠 小提示#

  • ping 模式受限于系统环境(Windows/Linux 有差异)
  • UDP 模式仅能粗略估计延迟
  • IPv6 地址段建议开启采样限制
  • 支持注释与空行、自动去重
PingTools延迟测试工具
https://www.bcsm.us.kg/posts/pingtools/
作者
北辰三梦
发布于
2025-08-15
许可协议
CC BY-NC-SA 4.0
评论