Skip to content

v1.12.0

Choose a tag to compare

@deYangar deYangar released this 14 Aug 05:27
· 1 commit to master since this release

ProcessNetMonitor v1.12.0 — 连接归属地显示 + IP 库自动管理

本版内容

新增

  • 连接归属地显示(本轮核心):详情窗口展开行的连接表格新增「归属地」列
    • 基于离线库 ip2region(IPv4 ip2region.xdb + IPv6 ip2region_v6.xdb),查询微秒级,全内存二分
    • 国内 IP:中文省市 + ISP(例:中国 江苏省 南京市 电信
    • 国外 IP:中文国家名 + 英文省市/ISP(内置 ISO 3166 中文映射表 150+ 国家,例:美国 California Google LLC
    • IPv6 完整支持;::ffff:x.x.x.x(IPv4 映射)自动转 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)全部改为 Win32 CreateFile/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/ 目录(或插件管理界面安装)。

安装前提

  1. Windows 10/11(推荐 64 位)
  2. TrafficMonitor 主程序(插件版)
  3. 插件以管理员权限运行时可用 ETW 内核采集(更准);普通权限自动回退传统采集并提示
  4. 首次启用归属地显示需要联网下载 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.logwerdumps\ 中的转储文件