+ print "self.ifaces:", self.ifaces
+ self.loadNetworkConfig()
+ #self.writeNetworkConfig()
+ #print ord(' ')
+ #for line in result:
+# print ord(line[0])
+
+ # helper function
+ def regExpMatch(self, pattern, string):
+ if string is None:
+ return None
+ try:
+ return pattern.search(string).group()
+ except AttributeError:
+ None
+
+ # helper function to convert ips from a sring to a list of ints
+ def convertIP(self, ip):
+ strIP = ip.split('.')
+ ip = []
+ for x in strIP:
+ ip.append(int(x))
+ return ip
+
+ def getDataForInterface(self, iface):
+ #ipRegexp = '[0-9]{1,2,3}\.[0-9]{1,2,3}\.[0-9]{1,2,3}\.[0-9]{1,2,3}'
+ ipRegexp = '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
+ ipLinePattern = re.compile('inet addr:' + ipRegexp)
+ netmaskLinePattern = re.compile('Mask:' + ipRegexp)
+ bcastLinePattern = re.compile('Bcast:' + ipRegexp)
+ ipPattern = re.compile(ipRegexp)
+ upPattern = re.compile('UP ')
+ macPattern = re.compile('[0-9]{2}\:[0-9]{2}\:[0-9]{2}\:[0-9]{2}\:[0-9]{2}\:[0-9]{2}')
+
+ fp = os.popen("ifconfig " + iface)
+ result = fp.readlines()
+ fp.close()
+ data = { 'up': False, 'dhcp': False }
+ for line in result:
+ ip = self.regExpMatch(ipPattern, self.regExpMatch(ipLinePattern, line))
+ netmask = self.regExpMatch(ipPattern, self.regExpMatch(netmaskLinePattern, line))
+ bcast = self.regExpMatch(ipPattern, self.regExpMatch(bcastLinePattern, line))
+ up = self.regExpMatch(upPattern, line)
+ mac = self.regExpMatch(macPattern, line)
+ if ip is not None:
+ data['ip'] = self.convertIP(ip)
+ if netmask is not None:
+ data['netmask'] = self.convertIP(netmask)
+ if bcast is not None:
+ data['bcast'] = self.convertIP(bcast)
+ if up is not None:
+ data['up'] = True
+ if mac is not None:
+ data['mac'] = mac
+ if not data.has_key('ip'):
+ data['dhcp'] = True
+ data['ip'] = [192, 168, 1, 2]
+ data['netmask'] = [255, 255, 255, 0]
+ data['gateway'] = [192, 168, 1, 1]
+
+ fp = os.popen("route -n | grep " + iface)
+ result = fp.readlines()
+ fp.close()
+ for line in result:
+ print line[0:7]
+ if line[0:7] == "0.0.0.0":
+ gateway = self.regExpMatch(ipPattern, line[16:31])
+ if gateway is not None:
+ data['gateway'] = self.convertIP(gateway)
+ return data
+