2016-03-03 122 views
0

我运行下面的脚本:数据包嗅探错误

import socket 

s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) 

while True: 
    print s.recvfrom(65565) 

不过,我得到这个错误:

Traceback (most recent call last): 
    File "supersecretfilepath/error.py", line 6, in <module> 
    print s.recvfrom(65565) 
error: [Errno 10022] An invalid argument was supplied 

我在Windows上运行的Python 2.7。谢谢。

+0

我试过降低buffersize,无济于事。 – Rob

+0

你的代码在这里工作(Linux),有很多输出丢失。我需要'sudo',否则'Traceback(最近调用最后一个): 文件“foo.py”,第3行,在 s = socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_TCP ) 文件“/usr/lib/python2.7/socket.py”,第191行,在__init__中 _sock = _realsocket(family,type,proto) socket.error:[Errno 1] Operation not permitted' – jbm

+0

我有一直使用管理员权限。 – Rob

回答

0

s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)

也许您的操作系统不支持将TCP指定为协议的原始IPv4套接字。

你想在这里做什么?

+0

我试图用原始套接字嗅探自己的数据包。 – Rob