从原始套接字捕获数据包时出错

3 投票
1 回答
9135 浏览
提问于 2025-04-18 04:37

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

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
属性错误:'模块'对象没有属性'PF_PACKET'

我在Windows 8.1上使用的是Pyscripter和Python 2.7

谢谢!

1 个回答

12

在Windows系统上打开原始套接字时,你应该使用 AF_INET。可以参考下面的代码示例:

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

撰写回答