提问人:gc75 提问时间:10/17/2023 更新时间:10/17/2023 访问量:41
使用 python scapy 捕获 Windows 中的网络流量
Using python scapy to capture network traffic in windows
问:
大家早上好,
我正在尝试用 python 编写一个脚本,该脚本使用 scapy 在 Windows 11 环境中执行数据包捕获。
如果我使用,脚本将启动:
packet = scapy.sniff(iface=None, timeout=duration, filter="tcp")
但它不记录任何内容。
如果我改用,我在打开界面时会出现错误。packet = scapy.sniff(iface=if_to_sniff, timeout=duration, filter="tcp")
这是我完整的测试脚本。
import os
import scapy.all as scapy
def sniff_traffic(filename, duration):
intrf = scapy.get_if_list()
intrf_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "documents", unique_code, "intrf.txt")
with open(intrf_path, "w") as f:
for item in intrf:
f.write(f"{item}\n")
if_to_sniff = scapy.get_if_list()[0]
writer = scapy.PcapWriter(filename)
while True:
packet = scapy.sniff(iface=if_to_sniff, timeout=duration, filter="tcp")
if packet is None:
break
writer.write(packet)
if __name__ == "__main__":
unique_code = "a425c5a1-c788-43db-ae2a-cb9be6e7cc6f"
pcap_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "documents", unique_code, "packets.pcap")
intrf_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "documents", unique_code, "intrf.txt")
duration = 5
sniff_traffic(pcap_path, duration)
谁能给我任何建议?
如何在 Windows 11 上将 Scapy 与 python 一起使用
答:
0赞
Guapi-zh
10/17/2023
#1
您提到的问题可能无法捕获数据包,因为它默认为第一个可用的网络接口。应明确指定要捕获的网络接口。您可以使用 查看可用的接口,然后选择适当的接口。iface=None
scapy.get_if_list()
您可以像以前一样使用可用接口,但请确保根据您的要求选择正确的接口。get_if_list()
评论