From 9d51c6d8f390b87ef4b75bc51a42dbe85b87f15d Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 12 Jul 2023 16:26:11 +0800 Subject: [PATCH] Fix Socket.Gaierror: [Errno 8] Nodename Nor Servname Provided, or Not Known in Python --- settings.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/settings.py b/settings.py index 351b126..f723454 100644 --- a/settings.py +++ b/settings.py @@ -32,9 +32,7 @@ warnings.simplefilter('ignore',InsecureRequestWarning) import ssl ssl._create_default_https_context = ssl._create_unverified_context -import socket - -CONST_APP_VERSION = "MaxBot (2023.07.01)" +CONST_APP_VERSION = "MaxBot (2023.07.02)" CONST_MAXBOT_CONFIG_FILE = "settings.json" CONST_MAXBOT_LAST_URL_FILE = "MAXBOT_LAST_URL.txt" @@ -495,10 +493,20 @@ def load_translate(): return translate def get_ip_address(): - ip = [l for l in ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] - if not ip.startswith("127.")][:1], [[(s.connect(('8.8.8.8', 53)), - s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, - socket.SOCK_DGRAM)]][0][1]]) if l][0][0] + default_ip = "127.0.0.1" + ip = default_ip + try: + ip = [l for l in ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] + if not ip.startswith("127.")][:1], [[(s.connect(('8.8.8.8', 53)), + s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, + socket.SOCK_DGRAM)]][0][1]]) if l][0][0] + except Exception as exc: + print(exc) + try: + ip = socket.gethostname() + except Exception as exc2: + print(exc2) + ip = default_ip return ip def format_config_keyword_for_json(user_input):