7

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

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

4

3 回答 3

8

看一下 get_if_hwaddr() 函数。

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

此代码可以帮助您:

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

干杯,K。

于 2013-06-01T09:00:30.967 回答
2

您可以通过以下方式轻松地:

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

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

于 2019-07-29T10:15:03.677 回答
-1

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/

于 2013-06-12T15:32:54.203 回答