python - 使用 scapy 在 IP 示例中制作 IP
问题描述
我正在尝试使用 scapy 在 IP 数据包中发送 IP,但我似乎遗漏或误解了某些内容。这是我的尝试:
from scapy.all import *
payload = "HelloWorld"
inner = IP(dst="192.168.1.2")
inner.add_payload(payload)
outer = IP(dst="192.168.1.2")
send(outer/inner)
我在目的地查看了带有wireshark的数据包,它显示数据包格式错误:
专家信息(错误/协议):IPv6 Hop-by-Hop 扩展标头必须紧跟在 IPv6 标头之后
然后目的地发送回一个类型为 3(目的地不可达)和代码 2(协议不可达)的 ICMP 数据包。
我尝试在外部和内部数据包上设置几种协议(协议 4 IPv4 封装感觉不错),但到目前为止,它们都发回了“协议无法访问”的 ICMP 数据包。
如果它有所不同,我的意图是让内部数据包发送到与外部数据包不同的目的地。我只是想我应该做一个最简单的例子来开始。一旦我弄清楚为什么我会收到协议无法访问的消息,我将更改内部数据包的目标 IP。
建议?
解决方案
如果要在 IP 数据包中发送 IP(外部 IP 标头、内部 IP 标头、IP 有效负载),例如:
from scapy.all import *
payload = "TEST"
send(IP(dst="192.168.1.2")/IP(dst="192.168.1.2")/UDP(dport=4444)/payload)
推荐阅读
- r - R 语言:如何在我自己的 wav 文件上使用 Specan 函数?
- c# - IErrorHandler WCF 配置为返回 text/plain Raw
- python - 包中的相对文件路径不起作用
- tensorflow - 使用 TensorFlow.js 进行实时单个对象跟踪
- android - 找不到 aapt2-proto.jar (com.android.tools.build:aapt2-proto:0.3.1)
- javascript - 如何修复 javascript Date 对象
- oracle - 如何在查询中使用声明的变量
- java - 运行 maven 项目时抛出不可解析的父 POM 异常
- c++ - 类的前向声明之后,类声明之前的类成员函数定义
- python - 如何根据在熊猫数据框中的其他列上应用条件来提取列值