2

我正在 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

Interface 是我构建的一个类,用于轻松传递有关接口的数据。我的问题是为什么名字总是'ethX',这是什么意思?如何将它转换为更有意义的东西,如 Wireshark的“无线网络连接”“VirtualBox Host-Only Network”

4

1 回答 1

0

ethX 是在 Linux 上列出 ETHernet 设备的传统方式。我建议您在 stackexchange 上阅读此说明

至于获取接口的人名,这是 Python 的一个主要技巧。小米的第一个建议是看下Scapy 仓库中 ifaces的实现。在那里,您将能够确定您可以访问的所有数据。

做到这一点的艰难而好的方法是通过 python 解析器访问 WinAPI。更简单(和肮脏)的方法是通过无头 powershell 获取名称并将其映射到您的地址。

无论如何,你选择了一个挑衅的项目。:)

于 2015-05-21T10:36:28.937 回答