From 6963fc2cff15723d753df688604693fb2a858a8f Mon Sep 17 00:00:00 2001 From: "Scott M. Kroll" Date: Wed, 17 Feb 2016 09:43:14 -0500 Subject: [PATCH 1/2] Allow option to set the listening host * Use the -o or --host option to set the host to listen on, in cases where the correct IP cannot be determined. --- SWProxy.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/SWProxy.py b/SWProxy.py index 2e697d7..099b13b 100755 --- a/SWProxy.py +++ b/SWProxy.py @@ -78,8 +78,11 @@ def _parse_response(self, response): return plain, json.loads(plain) -def get_external_ip(): +def get_external_ip(options): # ref: http://stackoverflow.com/a/1267524 + if options.host is not None: + return options.host + try: sockets = [[(s.connect(('8.8.8.8', 80)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1]] ips = [l for l in ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][:1], sockets) if l] @@ -120,7 +123,7 @@ def get_usage_text(): def start_proxy_server(options): - my_ip = get_external_ip() + my_ip = get_external_ip(options) try: print "Running Proxy server at {} on port {}".format(my_ip, options.port) @@ -134,6 +137,7 @@ def start_proxy_server(options): parser = argparse.ArgumentParser(description='SWParser') parser.add_argument('-d', '--debug', action="store_true", default=False) parser.add_argument('-g', '--no-gui', action="store_true", default=False) + parser.add_argument('-o', '--host', help="Host", default=None) parser.add_argument('-p', '--port', type=int, help='Port number', default=8080, nargs='+') options = parser.parse_args() @@ -159,7 +163,7 @@ def start_proxy_server(options): start_proxy_server(options) else: app = QApplication(sys.argv) - win = gui.MainWindow(get_external_ip(), options.port) + win = gui.MainWindow(get_external_ip(options), options.port) logger.addHandler(gui.GuiLogHandler(win)) win.show() sys.exit(app.exec_()) From e68acf93bc54cbc1e08d16511b29701f6ab43a34 Mon Sep 17 00:00:00 2001 From: "Scott M. Kroll" Date: Wed, 17 Feb 2016 11:56:29 -0500 Subject: [PATCH 2/2] Use if/else logic for getting host --- SWProxy.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/SWProxy.py b/SWProxy.py index 099b13b..578f0ee 100755 --- a/SWProxy.py +++ b/SWProxy.py @@ -78,11 +78,8 @@ def _parse_response(self, response): return plain, json.loads(plain) -def get_external_ip(options): +def get_external_ip(): # ref: http://stackoverflow.com/a/1267524 - if options.host is not None: - return options.host - try: sockets = [[(s.connect(('8.8.8.8', 80)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1]] ips = [l for l in ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][:1], sockets) if l] @@ -122,8 +119,10 @@ def get_usage_text(): def start_proxy_server(options): - - my_ip = get_external_ip(options) + if options.host: + my_ip = options.host + else: + my_ip = get_external_ip() try: print "Running Proxy server at {} on port {}".format(my_ip, options.port) @@ -162,8 +161,13 @@ def start_proxy_server(options): logger.addHandler(logging.StreamHandler()) start_proxy_server(options) else: + if options.host: + my_ip = options.host + else: + my_ip = get_external_ip() + app = QApplication(sys.argv) - win = gui.MainWindow(get_external_ip(options), options.port) + win = gui.MainWindow(my_ip, options.port) logger.addHandler(gui.GuiLogHandler(win)) win.show() sys.exit(app.exec_())