diff --git a/oml/utils.py b/oml/utils.py index 32a4fcc..5fed8e0 100644 --- a/oml/utils.py +++ b/oml/utils.py @@ -271,7 +271,21 @@ def get_local_ipv4(): dev = local[0].split(' ')[4] local_ip = [l for l in stdout.split('\n') if dev in l and not 'default' in l and 'src' in l] - ip = [p for p in local_ip[0].split(' ')[1:] if '.' in p][0] + if local_ip: + local_ip = [p for p in local_ip[0].split(' ')[1:] if '.' in p] + if local_ip: + ip = local_ip[0] + if not ip: + cmd = ['ip', 'addr', 'show'] + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, close_fds=True) + stdout, stderr = p.communicate() + stdout = stdout.decode('utf-8') + parts = stdout.split(' ') + local_ip = [p for p in parts if dev in p] + if local_ip: + local_ip = re.compile('inet (\d+\.\d+\.\d+.\d+)').findall(local_ip[0]) + if local_ip: + ip = local_ip[0] return ip def update_dict(root, data):