enet-validator/emu-probes/probe_disc.py

22 lines
728 B
Python

import socket,struct,sys
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)
f[0x1A:0x1A+8]=b"HIL-TEST"
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.settimeout(5)
s.bind(("192.168.68.1",0))
s.sendto(bytes(f),("192.168.68.200",31772))
try:
d,a=s.recvfrom(2048)
print("REPLY",len(d),"from",a)
print("magic",d[0:4],"type",struct.unpack_from("<I",d,4)[0],"sub",hex(struct.unpack_from("<H",d,0x18)[0]),"len",struct.unpack_from("<H",d,0x14)[0])
print("name",d[0x1A:0x29])
print("ip_rev",d[0x41:0x45].hex(),"mac",d[0x49:0x4F].hex())
except socket.timeout:
print("TIMEOUT no reply")