Windows 上 git-bash 的 coreutils hostname 不支持 -I,会把 GBK 报错写进 stderr;text=True 在 subprocess 后台读线程里 utf-8 严格解码会直接炸线程 (主线程 try/except 接不住异步线程异常)。抽 _local_ips():优先 hostname -I 且用 bytes 接收 errors=ignore 解码,不支持/失败时 getaddrinfo 枚举兜底。 扫描网段展开时剔除本机自身 IP,避免探测到自己 5555。