From ca422298f2746b4f765ee1a85d1bdc30edfa0211 Mon Sep 17 00:00:00 2001 From: Scott Griffy Date: Thu, 7 Jun 2018 11:09:43 -0700 Subject: [PATCH] added arguments and character filtering for terminal output --- proxy.py | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/proxy.py b/proxy.py index 50dd6d0..ee2a5b1 100644 --- a/proxy.py +++ b/proxy.py @@ -7,9 +7,30 @@ import select import time import sys +import string + +def remove_control_chars(s): + return ''.join([x for x in s if x in string.printable]) + +if len(sys.argv)<3: + print("usage:\n\t"+sys.argv[0]+" :") + sys.exit(1) + +listen_port=None +remote_host=None +remote_port=None +try: + remote_parts=sys.argv[2].split(':') + listen_port=int(sys.argv[1]) + remote_host=remote_parts[0] + remote_port=int(remote_parts[1]) +except Exception as e: + print("An argument was malformed") + print(e) + sys.exit(1) buffer_size = 4096 -forward_to = ('www.voorloopnul.com', 80) +forward_to = (remote_host, remote_port) class Forward: def __init__(self): @@ -80,13 +101,13 @@ def on_close(self, s): def on_recv(self, s): data = self.data # here we can parse and/or modify the data before send forward - print(data) + print(remove_control_chars(data.decode('utf-8', errors='ignore'))) self.channel[s].send(data) if __name__ == '__main__': - server = TheServer('', 9090) + server = TheServer('', listen_port) try: server.main_loop() except KeyboardInterrupt: print("Ctrl C - Stopping server") - sys.exit(1) \ No newline at end of file + sys.exit(1)