| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- """Systematic port matrix: 3 gateway IPs x game ports (8001/8021/8041/8061/8081/12000).
- Key insight from cached srvlist: 玖扬 servers have proxy= EMPTY, meaning the
- client connects DIRECTLY to the game port — only some servers use the 12000
- proxy. Earlier Test-NetConnection said 8001 closed, but asyncio connects
- succeeded to 12000. Test-NetConnection may behave differently (ICMP/SYN
- handling) — re-verify with real asyncio TCP connects.
- """
- import asyncio
- IPS = ["47.118.169.147", "47.118.169.153", "47.118.172.233"]
- PORTS = [8001, 8021, 8041, 8061, 8081, 12000]
- async def test(ip: str, port: int) -> bool:
- try:
- r, w = await asyncio.wait_for(asyncio.open_connection(ip, port), timeout=4)
- w.close()
- try:
- await w.wait_closed()
- except Exception:
- pass
- return True
- except Exception:
- return False
- async def main():
- print(f"{'ip':>16} " + " ".join(f"{p:>6}" for p in PORTS))
- for ip in IPS:
- results = await asyncio.gather(*(test(ip, p) for p in PORTS))
- marks = " ".join(f"{'OPEN' if o else ' - '}" for o in results)
- print(f"{ip:>16} {marks}")
- print()
- print("If 8001/8081 are OPEN: 玖扬 servers are DIRECT-connect (no proxy);")
- print("our probes to 12000 with p3=8001 were asking the PROXY to reach a")
- print("different backend — hence silence.")
- asyncio.run(main())
|