import struct import sys import time import json from struct import * from twisted.web import server, resource from twisted.internet.protocol import DatagramProtocol from twisted.internet import reactor from twisted.application.internet import MulticastServer user_pw = '0000' # default is '0000' code_login = 0xfffd040d code_total_today = 0x54000201 code_spot_ac_power = 0x51000201 src_serial = 987193143 # = 37 5F D7 3A (intel format, little endian) dst_serial = 304913813 # = 95 9D 2C 12 (intel format, little endian) comm_port = 9522 comm_dst = '192.168.2.103' def get_encoded_pw(password): # user=0x88, install=0xBB encpw=[0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88] for index in range(min(len(encpw), len(password))): encpw[index] = encpw[index] + ord(password[index]) ret = "" for ch in encpw: ret = ret + hex(ch).replace('0x','') return ret cmd_login = '534d4100000402a000000001003a001060650ea0ffffffffffff00017800%s00010000000004800c04fdff07000000840300004c20cb5100000000%s00000000' % (struct.pack('