如何获取发送数据包的接口的 MAC 地址?
我正在尝试创建一个自定义 ARP 数据包,我需要在其中包含我自己的 MAC。我似乎无法找到获得它的方法。
看一下 get_if_hwaddr() 函数。
文档: https ://scapy.readthedocs.io/en/latest/routing.html
此代码可以帮助您:
my_macs = [get_if_hwaddr(i) for i in get_if_list()]
干杯,K。
您可以通过以下方式轻松地:
from scapy.all import Ether
print(Ether().src)
这将打印您正在使用的默认接口的 MAC 地址。
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'}]}