【问题标题】:Error while capturing packets from raw socket从原始套接字捕获数据包时出错
【发布时间】:2014-04-28 18:13:53
【问题描述】:

我正在尝试运行以下几行程序:

import socket
import struct
import binascii

sock = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.htons(0x800))
print sock

我收到以下错误: 消息文件名行位置
追溯
C:\Users\d\Documents\rawsocket.py 19
AttributeError: 'module' 对象没有属性 'PF_PACKET'

我在 Windows 8.1 上使用 Pyscripter,Python 2.7

谢谢!

【问题讨论】:

  • PF_PACKET 仅在 Linux 上可用。

标签: python sockets


【解决方案1】:

您应该在 Windows 上使用AF_INET 来打开原始套接字。类似:

sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)

【讨论】:

  • 这很有帮助。现在我的下一个错误出现在以下行:pkt = sock.recvfrom(2048)...这又是 Windows 不支持的东西吗?
  • Mac 似乎也是如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 1970-01-01
  • 2022-01-01
  • 2011-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多