Python套接字嗅探器无法在AIX5.3上运行

时间:2015-09-11 14:03:10

标签: 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 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'"

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

我试图将依赖项保持在最低限度,所以我更喜欢使用套接字而不是第三方库: - )

0 个答案:

没有答案