enet-validator/emu-probes/probe_alive.py

23 lines
863 B
Python

import socket,time
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.settimeout(3)
s.bind(("192.168.68.1",0))
def cmd(c):
s.sendto(c.encode(),("192.168.68.200",5002))
try:
d,_=s.recvfrom(1024); print(c,"->",d.decode(errors="replace").strip())
except socket.timeout: print(c,"-> TIMEOUT")
cmd("ping")
cmd("mode")
cmd("info")
# e:net discovery ??(?? enet ????)
import struct
f=bytearray(180); f[0:4]=b"ENet"
struct.pack_into("<I",f,4,1); struct.pack_into("<H",f,0x0A,31772)
f[0x12]=1; struct.pack_into("<H",f,0x14,180); struct.pack_into("<H",f,0x18,1)
s2=socket.socket(socket.AF_INET,socket.SOCK_DGRAM); s2.settimeout(3); s2.bind(("192.168.68.1",0))
s2.sendto(bytes(f),("192.168.68.200",31772))
try:
d,_=s2.recvfrom(2048); print("enet discovery ->",len(d),"B name=",d[0x1A:0x29])
except socket.timeout: print("enet discovery -> TIMEOUT")