# -*- coding: utf-8 -*- r'''测被控端实际报出去的 lanIps 列表。''' from __future__ import annotations import sys from pathlib import Path ROOT = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote") sys.path.insert(0, str(ROOT / "windows")) def main() -> int: from lanremote.server import lan_ips, local_ip, _ip_rank ips = lan_ips() print(" lan_ips() -> %s" % (ips,)) for ip in ips: print(" %-18s rank=%d" % (ip, _ip_rank(ip))) print() print(" local_ip() -> %s" % local_ip()) print() print(" 手表那边的判断(sameSubnet 比前 3 段):") if ips: first = ips[0] print(" 被控端报的第一个: %s" % first) print(" 如果手表在 192.168.2.x -> 匹配 ✓") print(" 如果手表在别的网段 -> 不匹配,走中转") print() print(" 结论:") real = [ip for ip in ips if ip.startswith(("192.168.", "10."))] if real: print(" ✓ 报了真实局域网地址 %s,手表同网段时能直连" % real[0]) print(" 所以「电脑不在同一网络」的提示,意味着") print(" 手表当时**真的不在** 192.168.2.x —— 比如连了 5G 频段") print(" 的另一个路由,或者开着移动数据。") else: print(" ✗ 没有真实局域网地址,手表永远匹配不上") return 0 if __name__ == "__main__": sys.exit(main())