Python Scapy - 有意义的接口名称
Python Scapy - Meaningful Interfaces Name
我正在用 python 2.6 和 windows 7 上的 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
接口是我构建的 class 以轻松传递有关接口的数据。
我的问题是为什么名字总是'ethX',这是什么意思?我怎样才能把它转换成更有意义的东西,比如 'Wireless Network Connection' 或 'VirtualBox Host-Only Network' 就像 Wireshark 那样?
ethX 是在 Linux 上列出 ETHernet 设备的传统方式。我推荐你阅读这个 explanation on stackexchange
至于获取界面的人名,这是 Python 的一个主要技巧。
小米第一个推荐是看Scapy repository中ifaces的实现。在那里您将能够确定您可以访问的每个数据。
完成它的艰难而好的方法是通过 python 的解析器访问 WinAPI。更简单(和肮脏)的方法是通过无头 powershell 获取名称并将其映射到您的地址。
无论如何,你选择了一个挑衅的项目。 :)
我正在用 python 2.6 和 windows 7 上的 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
接口是我构建的 class 以轻松传递有关接口的数据。 我的问题是为什么名字总是'ethX',这是什么意思?我怎样才能把它转换成更有意义的东西,比如 'Wireless Network Connection' 或 'VirtualBox Host-Only Network' 就像 Wireshark 那样?
ethX 是在 Linux 上列出 ETHernet 设备的传统方式。我推荐你阅读这个 explanation on stackexchange
至于获取界面的人名,这是 Python 的一个主要技巧。 小米第一个推荐是看Scapy repository中ifaces的实现。在那里您将能够确定您可以访问的每个数据。
完成它的艰难而好的方法是通过 python 的解析器访问 WinAPI。更简单(和肮脏)的方法是通过无头 powershell 获取名称并将其映射到您的地址。
无论如何,你选择了一个挑衅的项目。 :)