def load(self): from scapy.fields import FlagValue data = {} ips = in6_getifaddr() for i in _get_if_list(): ifflags = struct.unpack("16xH14x", get_if(i, SIOCGIFFLAGS))[0] index = get_if_index(i) mac = scapy.utils.str2mac( get_if_raw_hwaddr(i, siocgifhwaddr=SIOCGIFHWADDR)[1] ) ip = inet_ntop(socket.AF_INET, get_if_raw_addr(i)) if ip == "0.0.0.0": ip = None ifflags = FlagValue(ifflags, _iff_flags) if_data = { "name": i, "network_name": i, "description": i, "flags": ifflags, "index": index, "ip": ip, "ips": [x[0] for x in ips if x[2] == i] + [ip] if ip else [], "mac": mac } data[i] = NetworkInterface(self, if_data) return data
def load(self): if not conf.use_pcap or WINDOWS: return {} if not conf.cache_pcapiflist: load_winpcapy() data = {} i = 0 for ifname, dat in conf.cache_pcapiflist.items(): description, ips, flags, mac = dat i += 1 if not mac: from scapy.arch import get_if_hwaddr try: mac = get_if_hwaddr(ifname) except Exception: # There are at least 3 different possible exceptions continue if_data = { 'name': ifname, 'description': description or ifname, 'network_name': ifname, 'index': i, 'mac': mac or '00:00:00:00:00:00', 'ips': ips, 'flags': flags } data[ifname] = NetworkInterface(self, if_data) return data
def load(self): data = {} try: interfaces = get_usbpcap_interfaces() except OSError: return {} for netw_name, name in interfaces: index = re.search(r".*(\d+)", name) if index: index = int(index.group(1)) + 100 else: index = 100 if_data = { "name": name, "network_name": netw_name, "description": name, "index": index, } data[netw_name] = NetworkInterface(self, if_data) return data
def load(self): from scapy.fields import FlagValue data = {} ips = in6_getifaddr() for ifname, index in _get_ifindex_list(): try: ifflags = _get_if_flags(ifname) mac = scapy.utils.str2mac(get_if_raw_hwaddr(ifname)[1]) ip = inet_ntop(socket.AF_INET, get_if_raw_addr(ifname)) except Scapy_Exception: continue ifflags = FlagValue(ifflags, _iff_flags) if_data = { "name": ifname, "network_name": ifname, "description": ifname, "flags": ifflags, "index": index, "ip": ip, "ips": [x[0] for x in ips if x[2] == ifname] + [ip], "mac": mac } data[ifname] = NetworkInterface(self, if_data) return data