import socket import sys if len(sys.argv) < 4: print(f"Usage: python {sys.argv[0]} [...]") sys.exit(1) # create a UDP socket sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # set the address and port of the remote host ip_address = sys.argv[1] port = int(sys.argv[2]) password = sys.argv[3] command = ' '.join(sys.argv[4:]) remote_address = (ip_address, port) # set a timeout of 5 seconds for recvfrom() sock.settimeout(5.0) message = b'\xff\xff\xff\xffrcon ' + password.encode() + b' ' + command.encode() sock.sendto(message, remote_address) try: # wait for a response from the remote host response, remote_address = sock.recvfrom(4096) except socket.timeout: # handle timeout print('Timed out while waiting for response.') else: print('Received: ', response)