From ca8d7c6eddc8daeade06e9cfdc791663bb7e86ff Mon Sep 17 00:00:00 2001 From: Yehuda Deutsch Date: Mon, 12 Aug 2019 19:34:52 +0300 Subject: [PATCH] Fix ip response --- app.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app.py b/app.py index bff597e..9ff2c4a 100644 --- a/app.py +++ b/app.py @@ -11,8 +11,13 @@ class GetClientIpMixin: for header_name in ('x-real-ip', 'x-forwarded-for'): candidate_ip = None header_value = request.headers.get(header_name) + if not header_value: + continue for ip in header_value.split(',')[::-1]: - candidate_ip = ip_address(ip.strip()) + try: + candidate_ip = ip_address(ip.strip()) + except ValueError: + continue if candidate_ip.is_global: break if candidate_ip: @@ -48,8 +53,8 @@ if __name__ == '__main__': import os from argparse import ArgumentParser - default_host = os.environ.get('APP_HOST', 'localhost') - default_port = int(os.environ.get('APP_PORT', 8081)) + default_host = os.environ.get('APP_HOST', '0.0.0.0') + default_port = int(os.environ.get('APP_PORT', 8080)) default_trusted = os.environ.get('TRUSTED_PROXIES') or None parser = ArgumentParser('app.py') @@ -58,5 +63,5 @@ if __name__ == '__main__': parser.add_argument('--proxies', type=str, help='A list of trusted proxies, comma separated. you can use CIDRs.', default=default_trusted) args = parser.parse_args() - txip = Application(args) - txip.run() + zero_if = Application(args) + zero_if.run()