64 lines
2.4 KiB
Python
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) |