#!/usr/bin/env python3
import socket, time, json
try: import socks
except Exception as e: print('no socks',e); raise
TARGETS=[('gwde.baloise.de',8009),('ocs-vertriebsservice.baloise.de',8009),('va.baloise.de',8009)]
ROUTES=[('direct',None,None),('warp',1088,'raw'),('mullvad-ch',1089,'raw+ch'),('mullvad-de',1089,'raw+de')]
PKT=b'\x12\x34\x00\x01\x0a'
for host,port in TARGETS:
 for name,pport,user in ROUTES:
  s=None; t=time.time()
  try:
   if pport:
    s=socks.socksocket(); s.set_proxy(socks.SOCKS5,'127.0.0.1',pport,username=user)
   else: s=socket.socket()
   s.settimeout(8); s.connect((host,port)); s.sendall(PKT); data=s.recv(32)
   out={'host':host,'port':port,'route':name,'connected':True,'elapsed':round(time.time()-t,3),'response_hex':data.hex(),'cpong':data.startswith(b'AB\x00\x01\x09')}
  except Exception as e:
   out={'host':host,'port':port,'route':name,'connected':False,'elapsed':round(time.time()-t,3),'error':repr(e)}
  finally:
   try: s.close()
   except: pass
  print(json.dumps(out),flush=True)
