Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
 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
Beispiel #4
0
 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