Files
2026-07-28 03:15:28 +08:00

64 lines
2.4 KiB
Python

class NetworkProcessings(App):
def __init__(self, url):
self.headers = {'User-Agent':'Termination/4.0 (Termination4)'}
self.mac = uuid.uuid1().hex[-12:].upper()
self.url=url
self.sio, self.j=self.Try_To_System(self.url+"/host.json")
self.Polling()
def Polling(self):
self.sio.emit((f"{self.j["NetWork"]["Dir"]}{self.j["NetWork"]["Command"]}"), {"PID": 1, "MAC": self.mac, "Name": platform.node()})
@self.sio.on(f"{self.j["NetWork"]["Dir"]}{self.j["NetWork"]["CommandSend"]}")
def CommandSend(msg):
print(msg)
def send(self, route, sth):
self.sio.emit(route, sth)
def Post(self, url, data) -> str:
response = requests.post(url,data=data,headers=self.headers)
return response
def Get(self, url) -> str:
response = requests.get(url,headers=self.headers)
return response
def Wait_System(self, url, sleep=30):
while True:
c=self.Wait_Web(url)
print("WSC: ", c)
try:
c2=self.Get(c["Host"]+c["NetWork"]["Dir"]+c["NetWork"]["Test"])
except Exception as e:
print("WSE", e)
else:
if c2.status_code == 200:
if c2.text == "OK":
return c
else:
print("WS: C NOT OK C:", c2.text)
time.sleep(sleep)
def Wait_Web(self, url, sleep=30):
while True:
try:
c = self.Get(url)
print("WWC: ", c)
except Exception as e:
print("WWE", e)
else:
if c.status_code == 200:
try:
_=json.loads(c.text)
if "CanConnect" in _ and _["CanConnect"] == True and "Host" in _:
return _
else:
print("WW: if e", _)
except:
print("WWE: JSON")
time.sleep(sleep)
def Try_To_System(self, url, sleep=30):
while True:
c=self.Wait_System(url, sleep)
try:
self.sio=socketio.Client()
self.sio.connect(c["Host"])
except:
pass
else:
return self.sio, c
time.sleep(sleep)