v1.12.0
ProcessNetMonitor v1.12.0 — 连接归属地显示 + IP 库自动管理
本版内容
新增
- 连接归属地显示(本轮核心):详情窗口展开行的连接表格新增「归属地」列
- 基于离线库 ip2region(IPv4
ip2region.xdb+ IPv6ip2region_v6.xdb),查询微秒级,全内存二分 - 国内 IP:中文省市 + ISP(例:
中国 江苏省 南京市 电信) - 国外 IP:中文国家名 + 英文省市/ISP(内置 ISO 3166 中文映射表 150+ 国家,例:
美国 California Google LLC) - IPv6 完整支持;
::ffff:x.x.x.x(IPv4 映射)自动转 IPv4 查询
- 基于离线库 ip2region(IPv4
- IP 库自动下载与管理:
- 首次使用自动检测并下载两个库(curl 子进程,多 CDN 源兜底:jsdelivr / adysec / fastly / gcore / GitHub raw)
- 默认每 7 天自动更新(插件设置可改 1~365 天)
- 下载走独立线程不卡界面;失败保留旧库不影响使用;首次失败弹窗提示(可配代理或关闭功能)
- 插件设置可配置代理服务器(支持 http/socks5,留空直连,下载中修改下一个源即生效)和立即更新按钮
- 「启用连接归属地显示」开关:关闭后不再下载/加载库,连接表格自动隐藏归属地列
- 下载进程纳入 Job Object:TM 退出时自动终止 curl,无孤儿进程;崩溃残留
.tmp启动时自动清理
- 窗口缩放与布局:
- 详情窗口可拖拽缩放(修复边缘命中),最小尺寸限制,宽高自动记忆(settings.json)
- 连接表格列宽自适应窗口(协议/状态固定,本地/远程/归属地按权重分配)
- 归属地超长自动换行完整显示(行高自适应)
- 保留地址过滤:内网/环回/链路本地/组播/CGNAT 显示
-;TEST-NET、6to4、基准测试段(198.18/15 等 fake-IP 段)显示「保留地址」 - 任务栏两列对齐自绘(应反馈要求):进程名左对齐最左、速度右对齐,超长按宽度动态截断加
..;不再受 TM 全局「数值右对齐」设置影响,永不裁切;主窗口显示同走自绘(文本颜色取 TM 传入的EI_VALUE_TEXT_COLOR) - 性能:TCP/UDP 连接表每次刷新只查询一次,连接数与连接详情缓存共用同一快照
修复
- 退出/卸载时崩溃(issue #7):DLL 卸载路径(CRT 静态析构)销毁 tooltip/详情窗口会触发同步窗口回调,第三方输入法(如搜狗 TSF)挂接后回调内空指针崩溃——卸载路径不再销毁窗口(随进程销毁);非卸载路径销毁前先摘除 IME 关联(
ImmAssociateContext(NULL))并加 SEH 兜底 - 加载初期显示项 ID 重复(issue #7):三个显示项的
Init()原先延迟到首次数据刷新才执行,TM 加载插件枚举项目时三个项会短暂返回相同 ID("SpdUp01"),可能干扰 TM 显示项配置——改为构造时立即初始化 - 子线程写日志崩溃 0xC0040409 failfast:第三方注入 DLL(如游戏加加 GPP64)hook 文件操作干扰 CRT
FILE*状态,fwprintf/fputs触发无效参数 failfast——日志写入(etw_capture.log / capture.log)全部改为 Win32CreateFile/WriteFile,绕开 CRT 文件机制 - 插件信息主页链接:指向
https://github.com/deYangar/ProcessNetMonitor(原为占位 github.com)
版本说明(2 个产物)
| 文件 | 说明 |
|---|---|
ProcessNetMonitor.dll |
x64(64 位 TrafficMonitor 使用) |
ProcessNetMonitor_x86.dll |
x86(32 位 TrafficMonitor 使用) |
选择与你的 TrafficMonitor 主程序位数一致的 DLL,放入 TM 的 plugins/ 目录(或插件管理界面安装)。
安装前提
- Windows 10/11(推荐 64 位)
- TrafficMonitor 主程序(插件版)
- 插件以管理员权限运行时可用 ETW 内核采集(更准);普通权限自动回退传统采集并提示
- 首次启用归属地显示需要联网下载 IP 库(约 48MB:v4 10.6MB + v6 37MB);网络受限可在插件设置配置代理
已知说明
- TUN 代理模式下,走代理的应用流量归属代理进程(如 mihomo),应用侧 TUN 重复流量不显示(与 AppNetworkCounter 一致)
- 代理进程与应用之间的虚拟转发流量(TUN 用户态)无法通过内核 ETW 观测,不显示
- 与 AppNetworkCounter 等 ETW 工具共用时:先启动的一方占用 NT Kernel Logger;后启动的 TM 进入附加模式(悬浮窗有黄色警告提示)
- IP 库数据来自 ip2region(社区维护),国外部分城市/ISP 为英文(国家名已本地化中文);个别 IP 段定位可能不准确
- IP 库下载全源失败时弹窗提示,可:配置代理 / 关闭归属地显示 / 稍后点「立即更新」重试;下载失败不会影响其他功能
- 第三方注入 DLL(游戏加加等)若 hook 文件/线程 API,仍可能干扰插件运行;日志写入已改用 Win32 API 降低风险
- 历史流量如有旧版本残留的虚高数据,请在详情窗口点击「清除历史」重置
- 调试日志:默认关闭;需要诊断时在插件设置(或详情窗口行右键)开启,日志位于
plugins\ProcessNetMonitor\debug\;闪退时请反馈该目录下crash.log与werdumps\中的转储文件