python类AF_LINK的实例源码

net.py 文件源码 项目:pykit 作者: baishancloud 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def get_host_devices(iface_prefix=''):

    rst = {}

    for ifacename in netifaces.interfaces():

        if not ifacename.startswith(iface_prefix):
            continue

        addrs = netifaces.ifaddresses(ifacename)

        if netifaces.AF_INET in addrs and netifaces.AF_LINK in addrs:

            ips = [addr['addr'] for addr in addrs[netifaces.AF_INET]]

            for ip in ips:
                if is_ip4_loopback(ip):
                    break
            else:
                rst[ifacename] = {'INET': addrs[netifaces.AF_INET],
                                  'LINK': addrs[netifaces.AF_LINK]}

    return rst
pcapdnet.py 文件源码 项目:hakkuframework 作者: 4shadoww 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def get_if_raw_hwaddr(iff):
    err = create_string_buffer(PCAP_ERRBUF_SIZE)
    devs = POINTER(pcap_if_t)()
    ret = b"\0\0\0\0\0\0"
    if pcap_findalldevs(byref(devs), err) < 0:
      return ret
    try:
      p = devs
      while p:
        if p.contents.name.endswith(iff.encode('ascii')):
          a = p.contents.addresses
          while a:
            if hasattr(socket, 'AF_LINK') and a.contents.addr.contents.sa_family == socket.AF_LINK:
              ap = a.contents.addr
              val = cast(ap, POINTER(sockaddr_dl))
              ret = bytes(val.contents.sdl_data[ val.contents.sdl_nlen : val.contents.sdl_nlen + val.contents.sdl_alen ])
            a = a.contents.next
          break
        p = p.contents.next
      return ret
    finally:
      pcap_freealldevs(devs)
pcapdnet.py 文件源码 项目:trex-http-proxy 作者: alwye 项目源码 文件源码 阅读 33 收藏 0 点赞 0 评论 0
def get_if_raw_hwaddr(iff):
    err = create_string_buffer(PCAP_ERRBUF_SIZE)
    devs = POINTER(pcap_if_t)()
    ret = b"\0\0\0\0\0\0"
    if pcap_findalldevs(byref(devs), err) < 0:
      return ret
    try:
      p = devs
      while p:
        if p.contents.name.endswith(iff.encode('ascii')):
          a = p.contents.addresses
          while a:
            if hasattr(socket, 'AF_LINK') and a.contents.addr.contents.sa_family == socket.AF_LINK:
              ap = a.contents.addr
              val = cast(ap, POINTER(sockaddr_dl))
              ret = bytes(val.contents.sdl_data[ val.contents.sdl_nlen : val.contents.sdl_nlen + val.contents.sdl_alen ])
            a = a.contents.next
          break
        p = p.contents.next
      return ret
    finally:
      pcap_freealldevs(devs)
__main__.py 文件源码 项目:python-arp-spoofer 作者: 7BISSO 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def do_inet(self, _AF):
        """Usage : inet [option], see 'man' for options"""

        if _AF == 'AF_INET':
            print("\033[1;96m{} : \033[1;m".format(__global_iface__))
            print(netifaces.ifaddresses(__global_iface__)[netifaces.AF_INET])

        elif _AF == 'AF_LINK':
            print("\033[1;96m{} : \033[1;m".format(__global_iface__))
            print(netifaces.ifaddresses(__global_iface__)[netifaces.AF_LINK])

        elif _AF:
            syntax_err('inet')

        else:
            print("\033[1;96m{} : \033[1;m".format(__global_iface__))
            print(netifaces.ifaddresses(__global_iface__))
utils.py 文件源码 项目:pytRobot 作者: ggljzr 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def get_interfaces():
    """
    Return dict with available network interfaces and their addresses.
    """

    interfaces = {}

    for interface in nif.interfaces():
        new_interface = {}
        new_interface['name'] = interface

        addrs = nif.ifaddresses(interface)

        try:
            new_interface['ip'] = addrs[nif.AF_INET][0]['addr']
        except KeyError:
            new_interface['ip'] = 'None'

        new_interface['hwaddr'] = addrs[nif.AF_LINK][0]['addr']

        interfaces[interface] = new_interface

    return interfaces
pcapdnet.py 文件源码 项目:PyQYT 作者: collinsctk 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def get_if_raw_hwaddr(iff):
    err = create_string_buffer(PCAP_ERRBUF_SIZE)
    devs = POINTER(pcap_if_t)()
    ret = b"\0\0\0\0\0\0"
    if pcap_findalldevs(byref(devs), err) < 0:
      return ret
    try:
      p = devs
      while p:
        if p.contents.name.endswith(iff.encode('ascii')):
          a = p.contents.addresses
          while a:
            if hasattr(socket, 'AF_LINK') and a.contents.addr.contents.sa_family == socket.AF_LINK:
              ap = a.contents.addr
              val = cast(ap, POINTER(sockaddr_dl))
              ret = bytes(val.contents.sdl_data[ val.contents.sdl_nlen : val.contents.sdl_nlen + val.contents.sdl_alen ])
            a = a.contents.next
          break
        p = p.contents.next
      return ret
    finally:
      pcap_freealldevs(devs)
uploader_daemon.py 文件源码 项目:google-music-manager 作者: jaymoulin 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def upload(directory='.', oauth='~/oauth', remove=False,
           uploader_id=netifaces.ifaddresses('eth0')[netifaces.AF_LINK][0]['addr'].upper()):
    logging.basicConfig(level=logging.INFO)
    logger = logging.getLogger(__name__)
    logger.info("Init Daemon - Press Ctrl+C to quit")

    api = Musicmanager()
    event_handler = MusicToUpload()
    event_handler.api = api
    event_handler.path = directory
    event_handler.willDelete = remove
    event_handler.logger = logger
    if not api.login(oauth, uploader_id):
        print("Error with oauth credentials")
        sys.exit(1)
    if remove:
        files = [file for file in glob.glob(directory + '/**/*', recursive=True)]
        for file_path in files:
            if os.path.isfile(file_path):
                logger.info("Uploading : " + file_path)
                uploaded, matched, not_uploaded = api.upload(file_path, True)
                if uploaded or matched:
                    os.remove(file_path)
    observer = Observer()
    observer.schedule(event_handler, directory, recursive=True)
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()
uploader_daemon.py 文件源码 项目:google-music-manager 作者: jaymoulin 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--directory", '-d', default='.', help="Music Folder to upload from (default: .)")
    parser.add_argument("--oauth", '-a', default='~/oauth', help="Path to oauth file (default: ~/oauth)")
    parser.add_argument("-r", "--remove", action='store_true', help="Remove files if present (default: False)")
    parser.add_argument("--uploader_id", '-u',
                        default=netifaces.ifaddresses('eth0')[netifaces.AF_LINK][0]['addr'].upper(),
                        help="Uploader identification (should be an uppercase MAC address) (default: <current eth0 MAC address>)")
    args = parser.parse_args()
    upload(args.directory, args.oauth, args.remove, args.uploader_id)
__init__.py 文件源码 项目:Chasar 作者: camilochs 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def mac_address():
    """
    Return the mac address of computer.
    """
    interface = netifaces.ifaddresses('en0')
    info = interface[netifaces.AF_LINK]
    if info:
        return interface[netifaces.AF_LINK][0]["addr"]
__init__.py 文件源码 项目:Chasar 作者: camilochs 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def mac_address():
    """
    Return the mac address of computer.
    """
    interface = netifaces.ifaddresses('en0')
    info = interface[netifaces.AF_LINK]
    if info:
        return interface[netifaces.AF_LINK][0]["addr"]
pcapdnet.py 文件源码 项目:hakkuframework 作者: 4shadoww 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def get_if_raw_hwaddr(iff):
      if iff == scapy.arch.LOOPBACK_NAME:
          return (772, '\x00'*6)
      try:
          s = netifaces.ifaddresses(iff)[netifaces.AF_LINK][0]['addr']
          return struct.pack('BBBBBB', *[ int(i, 16) for i in s.split(':') ])
      except:
          raise Scapy_Exception("Error in attempting to get hw address for interface [%s]" % iff)
      return l
network.py 文件源码 项目:psystem 作者: gokhanm 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def mac(self, interface_name):
        """
            interface: str , Interface Name
            return: List
                    [{'addr': '00:12:34:56:78:9a'}]

        """
        interface_check = self.interfaces

        if not interface_name in interface_check:
            raise WrongInterfaceName("Wrong Interface Name %s" % interface_name)

        addrs = netifaces.ifaddresses(interface_name)

        return addrs[netifaces.AF_LINK]
ssh_login.py 文件源码 项目:Python-Penetration-Testing-for-Developers 作者: PacktPublishing 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def get_addresses(interface):
    addrs = netifaces.ifaddresses(interface)
    link_addr = addrs[netifaces.AF_LINK]
    iface_addrs = addrs[netifaces.AF_INET]
    iface_dict = iface_addrs[0]
    link_dict = link_addr[0]
    hwaddr = link_dict.get('addr')
    iface_addr = iface_dict.get('addr')
    iface_broadcast = iface_dict.get('broadcast')
    iface_netmask = iface_dict.get('netmask')
    return hwaddr, iface_addr, iface_broadcast, iface_netmask
ifacesdetails.py 文件源码 项目:Python-Penetration-Testing-for-Developers 作者: PacktPublishing 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def get_addresses(interface):
    addrs = netifaces.ifaddresses(interface)
    link_addr = addrs[netifaces.AF_LINK]
    iface_addrs = addrs[netifaces.AF_INET]
    iface_dict = iface_addrs[0]
    link_dict = link_addr[0]
    hwaddr = link_dict.get('addr')
    iface_addr = iface_dict.get('addr')
    iface_broadcast = iface_dict.get('broadcast')
    iface_netmask = iface_dict.get('netmask')
    return hwaddr, iface_addr, iface_broadcast, iface_netmask
msfrpc_smb.py 文件源码 项目:Python-Penetration-Testing-for-Developers 作者: PacktPublishing 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_addresses(interface):
    addrs = netifaces.ifaddresses(interface)
    link_addr = addrs[netifaces.AF_LINK]
    iface_addrs = addrs[netifaces.AF_INET]
    iface_dict = iface_addrs[0]
    link_dict = link_addr[0]
    hwaddr = link_dict.get('addr')
    iface_addr = iface_dict.get('addr')
    iface_broadcast = iface_dict.get('broadcast')
    iface_netmask = iface_dict.get('netmask')
    return hwaddr, iface_addr, iface_broadcast, iface_netmask
pcapdnet.py 文件源码 项目:trex-http-proxy 作者: alwye 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def get_if_raw_hwaddr(iff):
      if iff == scapy.arch.LOOPBACK_NAME:
          return (772, '\x00'*6)
      try:
          s = netifaces.ifaddresses(iff)[netifaces.AF_LINK][0]['addr']
          return struct.pack('BBBBBB', *[ int(i, 16) for i in s.split(':') ])
      except:
          raise Scapy_Exception("Error in attempting to get hw address for interface [%s]" % iff)
      return l
wificommon.py 文件源码 项目:pywificontrol 作者: emlid 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def get_device_mac(self):
        try:
            return ifaddresses(self.interface)[AF_LINK][0]['addr']
        except KeyError:
            return "00:00:00:00:00:00"
base.py 文件源码 项目:raw-packet 作者: Vladimir-Ivanov-Git 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_netiface_mac_address(interface_name):
        try:
            mac_address = str(ifaddresses(interface_name)[AF_LINK][0]['addr'])
        except:
            mac_address = None
        return mac_address
base.py 文件源码 项目:raw-packet 作者: Vladimir-Ivanov-Git 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_netiface_ipv6_link_address(interface_name):
        try:
            mac_address = str(ifaddresses(interface_name)[AF_LINK][0]['addr'])
            parts = mac_address.split(":")
            parts.insert(3, "ff")
            parts.insert(4, "fe")
            parts[0] = "%x" % (int(parts[0], 16) ^ 2)
            ipv6Parts = []
            for i in range(0, len(parts), 2):
                ipv6Parts.append("".join(parts[i:i + 2]))
            ipv6_address = "fe80::%s" % (":".join(ipv6Parts))
        except:
            ipv6_address = None
        return ipv6_address
core.py 文件源码 项目:pina-colada 作者: ecthros 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def get_local_mac(self, iface):
        return ni.ifaddresses(iface)[ni.AF_LINK][0]['addr']
__main__.py 文件源码 项目:python-arp-spoofer 作者: 7BISSO 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def get_urmac():
    AF_LINK = netifaces.ifaddresses(__global_iface__)[netifaces.AF_LINK]
    urmac = str(AF_LINK).split("'addr': '")[1].split("'}")[0]
    return urmac
model.py 文件源码 项目:wifimitm 作者: mvondracek 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_mac_by_name(name: str) -> str:
        """
        Get MAC address of interface specified by name of the interface.
        :type name: str
        :param name: name of the network interface

        :rtype: str
        :return: string MAC address
        """
        ifa = netifaces.ifaddresses(name)
        mac = ifa[netifaces.AF_LINK][0]['addr']
        return mac
commands.py 文件源码 项目:WMD 作者: ThomasTJdev 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def getMac():
    """Get MAC address."""
    addrs = netifaces.ifaddresses('eno1')
    maca = addrs[netifaces.AF_LINK][0]['addr']
    return maca
interface_util.py 文件源码 项目:drc-sim 作者: rolandoislas 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def get_mac(cls, interface):
        addresses = netifaces.ifaddresses(interface)
        if netifaces.AF_LINK in addresses:
            return addresses[netifaces.AF_LINK][0]["addr"]
        return "0"
PAS5211_comm.py 文件源码 项目:voltha 作者: opencord 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def determine_src_mac(iface):
    if iface in netifaces.interfaces():
        return netifaces.ifaddresses(iface)[netifaces.AF_LINK][0]['addr']
    return None
get_mac_if.py 文件源码 项目:dcaf 作者: dxc-technology 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def match_device(self):
        interfaces = netifaces.interfaces()
        for device in interfaces:
            addresses = netifaces.ifaddresses(device)
            link_addresses = addresses[netifaces.AF_LINK]
            for address in link_addresses:
                device_hwaddr = address['addr']
                if self.mac.lower() == device_hwaddr.lower():
                    self.device_name=device
                    return device
    return -1
test_ngs_basic_ops.py 文件源码 项目:networking-generic-switch 作者: openstack 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def get_local_port_mac(self, bridge_name):
        mac_address = netifaces.ifaddresses(
            bridge_name)[netifaces.AF_LINK][0].get('addr')
        return mac_address
sdnpwn_common.py 文件源码 项目:sdnpwn 作者: smythtech 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def getMacAddress(iface):
  if(iface in netifaces.interfaces()):
    return netifaces.ifaddresses(iface)[netifaces.AF_LINK][0]['addr']
  else:
    return '0'
pcapdnet.py 文件源码 项目:PyQYT 作者: collinsctk 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def get_if_raw_hwaddr(iff):
      if iff == scapy.arch.LOOPBACK_NAME:
          return (772, '\x00'*6)
      try:
          s = netifaces.ifaddresses(iff)[netifaces.AF_LINK][0]['addr']
          return struct.pack('BBBBBB', *[ int(i, 16) for i in s.split(':') ])
      except:
          raise Scapy_Exception("Error in attempting to get hw address for interface [%s]" % iff)
      return l
Status.py 文件源码 项目:tipi 作者: jedimatt42 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def __init__(self):
        self.__records = []
        for name in netifaces.interfaces():
            if not name.startswith("lo"):
                iface = netifaces.ifaddresses(name)
                if netifaces.AF_LINK in iface:
                    self.__records.append(
                        "MAC_{}={}".format(str(name).upper(), iface[netifaces.AF_LINK][0]['addr']))
                if netifaces.AF_INET in iface:
                    self.__records.append("IP_{}={}".format(str(name).upper(), iface[netifaces.AF_INET][0]['addr']))

        with open("/home/tipi/tipi/version.txt", 'r') as fh_in:
            for line in fh_in.readlines():
                parts = line.split('=')
                self.__records.append("{}={}".format( 
                        str(parts[0]).strip().upper(),
                        str(parts[1]).strip()))

        with open("/home/tipi/tipi.uuid", 'r') as fh_in:
            self.__records.append("UUID={}".format(fh_in.readline()))

        # This needs to work even if there is no network.. thus a catch all.
        try:
            upgradeCheck = check_output(["/home/tipi/tipi/setup/upgrade.sh"])
            latest = upgradeCheck.split('\n')[1]
            if latest.startswith("Latest Version: "):
                self.__records.append("LATEST={}".format(latest.split(':')[1].strip()))
        except Exception as e:
            logger.warn("failed to fetch latest version info")


问题


面经


文章

微信
公众号

扫码关注公众号