mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-28 03:08:14 +00:00
The legacy get_ip function no longer worked on new versions of ubuntu LTS.
This commit is contained in:
parent
70d3f991ed
commit
2eca92e34d
@ -23,6 +23,7 @@ import sys
|
|||||||
import time
|
import time
|
||||||
import subprocess
|
import subprocess
|
||||||
import configparser
|
import configparser
|
||||||
|
from json import loads as convert
|
||||||
import urllib.request
|
import urllib.request
|
||||||
from dialog import Dialog, PythonDialogBug
|
from dialog import Dialog, PythonDialogBug
|
||||||
|
|
||||||
@ -34,14 +35,27 @@ except locale.Error:
|
|||||||
|
|
||||||
def get_ip():
|
def get_ip():
|
||||||
"""
|
"""
|
||||||
Return the IP of the eth0
|
Return the active IP
|
||||||
"""
|
"""
|
||||||
my_ip = subprocess.Popen(['ifconfig eth0 | grep "inet\ addr" | cut -d: -f2 | cut -d" " -f1'], stdout=subprocess.PIPE, shell=True)
|
#request 'ip addr' data in JSON format from shell
|
||||||
(IP,errors) = my_ip.communicate()
|
ip_addr_response = subprocess.run(['ip', '--json', 'addr'],capture_output=True)
|
||||||
my_ip.stdout.close()
|
|
||||||
if len(IP) == 0:
|
#process response, decode and use json.loads to convert the string to a dict
|
||||||
return None
|
ip_addr_data = convert(ip_addr_response.stdout.decode("utf-8"))
|
||||||
return IP.decode().strip()
|
|
||||||
|
#search ip_addr_data for the first ip adress that is not under a virtual bridge or loopback interface
|
||||||
|
for i in ip_addr_data:
|
||||||
|
if ('virbr' in i['ifname']) or ('lo' in i['ifname']):
|
||||||
|
continue
|
||||||
|
try:
|
||||||
|
if 'UP' in i['flags']:
|
||||||
|
ip_addr = i['addr_info'][0]['local']
|
||||||
|
break
|
||||||
|
except:
|
||||||
|
continue
|
||||||
|
ip_addr = None
|
||||||
|
|
||||||
|
return ip_addr
|
||||||
|
|
||||||
|
|
||||||
def get_config():
|
def get_config():
|
||||||
|
Loading…
Reference in New Issue
Block a user