【问题标题】:Scapy - get my own MAC addressScapy - 获取我自己的 MAC 地址
【发布时间】:2013-05-28 01:48:53
【问题描述】:

如何获取发送数据包的接口的 MAC 地址?

我正在尝试创建一个自定义 ARP 数据包,我需要在其中包含我自己的 MAC。我似乎无法找到获得它的方法。

【问题讨论】:

    标签: scapy


    【解决方案1】:

    看看 get_if_hwaddr() 函数。

    文档: https://scapy.readthedocs.io/en/latest/routing.html

    此代码可能对您有所帮助:

    my_macs = [get_if_hwaddr(i) for i in get_if_list()]
    

    干杯, K.

    【讨论】:

    • 如果你能解释一下 get_if_hwaddr 和 get_if_list 的作用会更好。
    【解决方案2】:

    您可以轻松地:

    from scapy.all import Ether
    print(Ether().src)
    

    这将打印您正在使用的默认接口的 MAC 地址。

    【讨论】:

    • get_if_hwaddr(conf.iface) 是一样的,但不那么神秘。
    【解决方案3】:

    Netifaces Python 包提供了大量有关您正在使用的接口的信息。

    >>> netifaces.ifaddresses('en0')
    {18: [{'addr': '00:12:34:56:78:9a'}], 2: [{'broadcast':
    '10.255.255.255', 'netmask': '255.0.0.0', 'addr': '10.16.1.4'}],
     30: [{'netmask': 'ffff:ffff:ffff:ffff::', 'addr':
    'fe80::123:4567:89ab:cdef%en0'}]}
    

    http://alastairs-place.net/projects/netifaces/

    【讨论】:

      猜你喜欢
      • 2011-03-14
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多