Python原始套接字没有看到传出数据

时间:2017-03-08 10:09:29

标签: python sockets tcp raw-sockets

我使用以下代码创建原始套接字:http://pastebin.com/pmg9iKgG 如你所见,我想:

  • 所有TCP接收的数据包从服务器的端口5555发送到我的PC,
  • 所有TCP都会将数据包从我的PC发送到服务器的端口5555。

问题是:我只能看到传入的数据包,而不能看到传出的数据包。这对嗅探器来说非常烦人......

你能帮我解决这个问题吗?

我在Windows 10上使用Anaconda作为python发行版(3.6,x64),无线(英特尔)或以太网(通过USB适配器导致超薄笔记本电脑)。

我在互联网上搜索,但我还没有看到任何类似的问题。此外,MSDN表示它应该以两种方式工作(传出和传入):https://msdn.microsoft.com/en-us/library/windows/desktop/ms740548%28v=vs.85%29.aspx

  

原始套接字的一个常见用途是对需要详细检查IP数据包和标头的应用程序进行故障排除。例如,原始套接字可与SIO_RCVALL IOCTL一起使用,以使套接字能够接收通过网络接口传递的所有IPv4或IPv6数据包。有关更多信息,请参阅SIO_RCVALL参考。

我将不胜感激任何帮助)))

就在事情上: 我绕过了这行代码:

host = socket.gethostbyname(socket.gethostname())

by:

host = "192.168.0.29"

因为它不是正确的值(但这不是问题,而且methode socket.getfqdn()完成了这项工作,但我没有更新我的脚本)

编辑:导致这种奇怪行为的是Windows FW,通过停用某些过滤器,我能够看到所有传入和传出的数据包。

0 个答案:

没有答案