From 84e2de8cf43bd6d5b21063fa619814b27ef0a7f9 Mon Sep 17 00:00:00 2001 From: kush5683 <32845063+kush5683@users.noreply.github.com> Date: Sat, 17 Apr 2021 22:58:33 -0400 Subject: [PATCH] Update __main__.py Prints IP in console --- updog/__main__.py | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/updog/__main__.py b/updog/__main__.py index 63d5e06..91291d2 100644 --- a/updog/__main__.py +++ b/updog/__main__.py @@ -1,6 +1,7 @@ import os import signal import argparse +import socket from flask import Flask, render_template, send_file, redirect, request, send_from_directory, url_for, abort from flask_httpauth import HTTPBasicAuth @@ -31,9 +32,12 @@ def parse_arguments(): '[Default=.]') parser.add_argument('-p', '--port', type=int, default=9090, help='Port to serve [Default=9090]') - parser.add_argument('--password', type=str, default='', help='Use a password to access the page. (No username)') - parser.add_argument('--ssl', action='store_true', help='Use an encrypted connection') - parser.add_argument('--version', action='version', version='%(prog)s v'+VERSION) + parser.add_argument('--password', type=str, default='', + help='Use a password to access the page. (No username)') + parser.add_argument('--ssl', action='store_true', + help='Use an encrypted connection') + parser.add_argument('--version', action='version', + version='%(prog)s v'+VERSION) args = parser.parse_args() @@ -43,6 +47,19 @@ def parse_arguments(): return args +def get_ip(): + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + try: + # doesn't even have to be reachable + s.connect(('10.255.255.255', 1)) + IP = s.getsockname()[0] + except Exception: + IP = '127.0.0.1' + finally: + s.close() + return IP + + def main(): args = parse_arguments() @@ -106,7 +123,8 @@ def main(): if os.path.exists(requested_path): # Read the files try: - directory_files = process_files(os.scandir(requested_path), base_directory) + directory_files = process_files( + os.scandir(requested_path), base_directory) except PermissionError: abort(403, 'Read Permission Denied: ' + requested_path) @@ -167,6 +185,7 @@ def main(): # Inform user before server goes up success('Serving {}...'.format(args.directory, args.port)) + info(f'{get_ip()}:{args.port}') def handler(signal, frame): print() @@ -177,7 +196,8 @@ def main(): if args.ssl: ssl_context = 'adhoc' - run_simple("0.0.0.0", int(args.port), app, ssl_context=ssl_context) + run_simple("0.0.0.0", int(args.port), app, + ssl_context=ssl_context, threaded=True) if __name__ == '__main__':