Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !DANGER! POOR CODE QUALITY! USE FOR YOUR OWN RISK!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- HOW TO USE:
- 1) Set up QMP via telnet (e.g. -qmp tcp:localhost:4444,server,nowait)
- 2) Set target address (usualy localhost) and target port (must be same with you QMP config string)
- 3) Assign this script to any hotkey.
- ???
- PROFIT!
- '''
- target_addr = 'localhost'
- target_port = 4444
- #Set productID in add strings. Get it by converting lsusb IDs to dec.
- #16641 50479 - EXAMPLE IDs. DON'T USE!
- cmd_add_kbd = b'{ "execute": "device_add", "arguments": { "driver": "usb-host","productid": "16641","id": "kbd" }}\n'
- cmd_add_mouse = b'{ "execute": "device_add", "arguments": { "driver": "usb-host","productid": "50479","id": "mouse" }}\n'
- cmd_del_kbd = b'{ "execute": "device_del", "arguments": { "id": "kbd" }}\n'
- cmd_del_mouse = b'{ "execute": "device_del", "arguments": { "id": "mouse" }}\n'
- import telnetlib
- def vm_checker ():
- try:
- telnetlib.Telnet(target_addr,target_port)
- except:
- return 1
- else:
- return 0
- def vm_push_command (qmp_cmd):
- tn = telnetlib.Telnet(target_addr,target_port)
- print(tn.read_until(b'[]}}'))
- tn.write(b'{ "execute": "qmp_capabilities" }\n')
- print(tn.read_until(b'{}}'))
- tn.write(qmp_cmd)
- ret = tn.read_until(b'}').decode('ascii')
- tn.close()
- return(ret)
- if __name__ == '__main__':
- print('QMP virtual KVM-switch started.')
- if vm_checker() == 1:
- print('[ERR]: Telnet failed to open ' + target_addr + ' ' + str(target_port))
- print('Check your configuration and VM status.')
- else:
- if vm_push_command(cmd_add_mouse).find('error') != -1:
- print('Mouse allready in VM, will delete it.')
- vm_push_command(cmd_del_mouse)
- if vm_push_command(cmd_add_kbd).find('error') != -1:
- print('KBD allready in VM, will delete it.')
- vm_push_command(cmd_del_kbd)
- print('Done.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement