python - 'L3PacketSocket' 对象在使用发送命令时没有属性 'ins'
问题描述
我正在尝试使用 UDP 协议发送数据包。我在 Ubuntu 上运行 Python 3 并使用 scapy。但是,我收到以下错误消息:“AttributeError:'L2Socket' 对象没有属性 'ins'”。完整的错误消息如下所示。
我在这里读到https://github.com/secdev/scapy/issues/1868,由于 Ubuntu 是通过虚拟机运行的,因此无法以 root 身份运行可能是个问题。任何帮助都非常受欢迎!
这些是有问题的代码行:
from scapy.all import *
packet = IP(dst="127.0.0.1")/UDP(dport=123)/Raw(load="123")
send(packet)
解决方案
您需要以 root (sudo) 身份启动 Scapy。
仔细查看错误:它首先显示“不允许操作”。您引用的错误是第一个失败的结果。
已经多次报告,第二个错误已在 master 上修复:https ://github.com/secdev/scapy/issues/1942
Scapy 将无法在没有 root 的情况下运行打开原始套接字。这是 Linux 的限制。
推荐阅读
- python - 防止我的 python 脚本同时执行两次
- macos - 使用 AppleScript Objc 设置扩展属性
- python - cuDF 中的 .data 函数不返回
- google-sheets - 如何使用 Google 表格中另一个单元格公式的值填充 QUERY 函数的“范围”部分?
- c - 如何将随机字符串分配给二维数组
- c++ - 为什么在 unique_ptr 中有一个 release()?有什么用处?
- javascript - Javascript 如何存储方法
- python - 为什么我会收到 ValueError:Series 的真值不明确?
- wordpress - 将 MariaDB 5.5.64 升级到 MariaDB 10 有必要吗?
- linux - 从正则表达式中获取文件列表