Python套接字嗅探器在AIX5.3上不工作

Python套接字嗅探器在AIX5.3上不工作,python,python-2.7,sockets,aix,Python,Python 2.7,Sockets,Aix,我正在尝试创建一个python网络嗅探脚本,它将捕获我需要记录的特定流量。 到目前为止,我只能嗅到ICMP数据包,这很奇怪,因为相同的代码在linux上运行良好。 Python版本是2.7.5 python代码: import socket #create an INET, STREAMing socket s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP) s.bind(('', 0)) # receive

我正在尝试创建一个python网络嗅探脚本,它将捕获我需要记录的特定流量。 到目前为止,我只能嗅到ICMP数据包,这很奇怪,因为相同的代码在linux上运行良好。 Python版本是2.7.5

python代码:

import socket
#create an INET, STREAMing socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind(('', 0))
# receive a packet
while True:
        print "Sniffing"
        packet = s.recvfrom(65565)
        print packet
任何帮助都将不胜感激:)

编辑:

我在创建套接字的行中尝试:

s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
这没有给我任何结果。当我将行更改为以下内容时:

s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
我得到的结果与使用上述代码得到的结果非常相似

然后我试了一下:

s = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.htons(0x800))
但后来我收到一条错误消息,说“AttributeError:‘module’对象没有属性‘PF_PACKET’”

我还尝试使用提取协议,得到所有包都使用协议1(ICMP)。我在Red Hat和Ubuntu系统上运行了上述所有解决方案,没有任何问题


我正在尽量减少依赖项,因此我更喜欢使用套接字而不是第三方库:-)

您的代码在Windows 7上运行良好。您如何确保它只嗅探
ICMP
数据包。已经有关于创建网络嗅探器的帖子了。我建议你试试斯卡皮。谢谢你的回复。我只在Linux/AIX环境中工作,因此在Windows中测试嗅探器不会让我走多远:-/我编辑了上面的问题以回答您的问题。此错误
“AttributeError:'module'对象没有属性'PF_PACKET'”
发生在您的Linux系统上?不,不是在Linux系统上,只是在AIX系统上。您的代码在Windows 7上运行良好。您如何确保它只嗅探
ICMP
数据包。已经有关于创建网络嗅探器的帖子了。我建议你试试斯卡皮。谢谢你的回复。我只在Linux/AIX环境中工作,因此在Windows中测试嗅探器不会让我走多远:-/我编辑了上面的问题以回答您的问题。此错误
“AttributeError:'module'对象没有属性'PF_PACKET'”
发生在您的Linux系统上?不,不是在Linux系统上,只是在AIX系统上。