docs: def _assemble_devinfo(self):
          '''
          Internal method.  Assemble information on each interface/
          device that we know about, i.e., its MAC address and configured
          IP address and prefix.
          '''
          devtype = {}
          for p in pcap_devices():
              if p.isloop:
                  devtype[p.name] = InterfaceType.Loopback
              else:
                  if sys.platform == 'linux':
                      st,output = subprocess.getstatusoutput(["iwconfig", p.name])
                      if "no wireless extensions" in output:
                          devtype[p.name] = InterfaceType.Wired
                      else:
                          devtype[p.name] = InterfaceType.Wireless
                  elif sys.platform == 'darwin':
                      devtype[p.name] = InterfaceType.Unknown
                  else:
                      devtype[p.name] = InterfaceType.Unknown
  
          devinfo = {}
          ifinfo = net_if_addrs()
          for devname in self._devs:
              ifaddrs = ifinfo.get(devname, None)
              if ifaddrs is None:
                  log_warn("Address info for interface {} not found! (skipping)".format(devname))
  
              if sys.platform == 'darwin':
                  layer2addrfam = socket.AddressFamily.AF_LINK
              elif sys.platform == 'linux':
                  layer2addrfam = socket.AddressFamily.AF_PACKET
              else:
                  raise RuntimeException("Platform not supported")
  
              macaddr = "00:00:00:00:00:00"
              ipaddr = mask = "0.0.0.0"
              for addrinfo in ifaddrs:
                  if addrinfo.family == socket.AddressFamily.AF_INET:
                      ipaddr = IPv4Address(addrinfo.address)
                      mask = IPv4Address(addrinfo.netmask)
                  elif addrinfo.family == layer2addrfam:
                      macaddr = EthAddr(addrinfo.address)
  
              ifnum = socket.if_nametoindex(devname)
              devinfo[devname] = Interface(devname, macaddr, ipaddr, netmask=mask, ifnum=ifnum, iftype=devtype[devname])
          return devinfo