Python Scapy - 有意义的接口名称

时间:2015-05-21 10:18:31

标签: python scapy network-interface

我正在Windows 7上使用python 2.6和Scapy构建一个嗅探器。当用户想要启动嗅探时,我给了他选择他想要嗅探的界面的选项,这给了我接口 -

def get_interfaces():
    """returns a list of available network interfaces"""
    interfaces = []
    for iface_name in sorted(ifaces.data.keys()):
        dev = ifaces.data[iface_name]
        mac = str(dev.mac)
        mac = conf.manufdb._resolve_MAC(mac)

        i = Interface(
            name=str(dev.name).ljust(4),
            ip=dev.ip.ljust(15),
            mac=mac.upper()
        )
        interfaces.append(i)
    return interfaces

接口是我为轻松传递有关接口数据而构建的类。 我的问题是为什么名字总是'ethX',这是什么意思?如何将其转换为更有意义的内容,如'无线网络连接''VirtualBox Host-Only Network',如Wireshark一样?

1 个答案:

答案 0 :(得分:0)

ethX是在Linux上列出ETHernet设备的传统方式。我建议你阅读explanation on stackexchange

至于获取界面的人名,这是Python的一个主要技巧。 Mi的第一个建议是在Scapy repository中查看ifaces的实现。在那里,您将能够确定您可以访问的每个数据。

这样做的好方法是通过python解析器访问WinAPI。更容易(和肮脏)的方式是通过无头的PowerShell并将其映射到您的地址。

无论如何,你选择了一个反抗项目。 :)