我正在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一样?
答案 0 :(得分:0)
ethX是在Linux上列出ETHernet设备的传统方式。我建议你阅读explanation on stackexchange
至于获取界面的人名,这是Python的一个主要技巧。 Mi的第一个建议是在Scapy repository中查看ifaces的实现。在那里,您将能够确定您可以访问的每个数据。
这样做的好方法是通过python解析器访问WinAPI。更容易(和肮脏)的方式是通过无头的PowerShell并将其映射到您的地址。
无论如何,你选择了一个反抗项目。 :)