gpt4 book ai didi

python - 如何使用原始数据包在python3.5中嗅探Windows 10中的ospf数据包

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:11 24 4
gpt4 key购买 nike

我正在尝试用Python嗅探ospf数据包,并在ubuntu中实现了这个目标。

在windows下,我只能嗅探TCP、UDP和IGMP数据包。我可以通过wireshark捕获ospf数据包。

代码如下。

from socket import *
import struct
import binascii

local_name = getfqdn(gethostname())
local_addr = gethostbyname(local_name)
sniffer = socket(AF_INET, SOCK_RAW, IPPROTO_IP)

sniffer.bind((local_addr, 0))
sniffer.setsockopt(IPPROTO_IP, IP_HDRINCL, 1)

sniffer.ioctl(SIO_RCVALL, RCVALL_ON)

while True:
pkt = sniffer.recvfrom(2048)

ipHeader = pkt[0][0:20]
ip_hdr = struct.unpack("!9s1s10s",ipHeader)
print("proto:", binascii.hexlify(ip_hdr[1]))

在 ubuntu 16.04 中,我创建套接字如下。

嗅探器=套接字(PF_PACKET,SOCK_RAW,htons(0x0800))

但是windows下好像不支持PF_PACKET和AF_PACKET。

如何在 Windows 中修改我的代码?或者如何在Windows中捕获以太网帧?

提前致谢:)

最佳答案

我找出原因了。看来只能通过在数据链路层捕获以太网帧来嗅探ospf数据包。但在 Windows 中,这是被禁止的。可以使用Winpcap。

关于python - 如何使用原始数据包在python3.5中嗅探Windows 10中的ospf数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44643660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com