gpt4 book ai didi

Python icmp 套接字服务器(不是 tcp\udp)

转载 作者:行者123 更新时间:2023-11-28 23:03:52 24 4
gpt4 key购买 nike

我正在尝试用 Python 编写一个可以接收 ICMP 数据包的套接字服务器。

这是我的代码:

s = socket.socket(socket.AF_INET,socket.SOCK_RAW, socket.IPPROTO_ICMP)
host = socket.gethostbyname(socket.gethostname())
s.bind((host,0))
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)

但是,我不知道如何接收数据包 - 我尝试使用 s.listen 但失败了。我错过了什么或者我完全走错了方向?

谢谢!

最佳答案

我以前用 twisted 做过这个,我把套接字设置成这样:

import socket

def listen():
s = socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_ICMP)
s.setsockopt(socket.SOL_IP, socket.IP_HDRINCL, 1)
while 1:
data, addr = s.recvfrom(1508)
print "Packet from %r: %r" % (addr,data)

关于Python icmp 套接字服务器(不是 tcp\udp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8245344/

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