Scapy:如何获取完整的 IP 数据包标头?

2024-03-06

在 Scapy 中,我想要manually将数据包与其相应的 ICMP 超时消息进行匹配。

我需要匹配:

  • ICMP 数据包的 IP-in-ICMP 字段
  • IP 标头和数据包的前 8 个字节 ICMP 数据包不是问题:

    icmpPayload = str(icmpPacket[ICMP].payload)

至于数据包的前8个字节,我只需要做:

str(myPacket[IP].payload)[:8]

我不知道如何获得onlyIP 标头myPacket。我现在要做的就是用前 8 个字节替换整个数据包中的有效负载。恐怕这种搜索和替换如果应用于数千个数据包,可能会花费太长时间:

 strOfMyPacket = str(myPacket[IP])
 strOfMyPacket.replace(str(myPacket[IP].payload),str(myPacket[IP].payload)[:8],1)

有什么更快的方法可以让我简单地执行以下操作吗?

 partOfPayload = str(myPacket[IP].payload)[:8]
 fullHeader = _______
 stringToCompare = fullHeader + partOfPayload

str(myPacket)[:(myPacket[IP].ihl * 4)]

IP头长度在该字段中ihl(互联网标头长度)。它表示为标头使用的 32 位字的数量。 (由于标题的“选项”部分,它是可变的)。因此,如果我们将该字段乘以 32,然后除以 8(或 * 4),我们就会得到标头填充的字节数,无论是否有选项。

我很惊讶没有方法(我能找到)只返回没有较低层的 IP 标头。

http://en.wikipedia.org/wiki/IPv4_header#Header http://en.wikipedia.org/wiki/IPv4_header#Header

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scapy:如何获取完整的 IP 数据包标头? 的相关文章

随机推荐

  • 将文本区域包裹在 HTML 元素周围

    有什么方法可以将 textarea HTML 元素包裹在 HTML 元素周围吗 就我而言 我想将文本区域包裹在标签周围 这就是我试图实现的目标 Label name 其中 是文本区域 你不能使用HTML里面有标签
  • 如何在画布上移动图像?

    我有一个简单的射击画布游戏 运行得很好 但我的问题是我想要图像进行拍摄而不是蓝色矩形 那么我怎样才能让我的图像移动并拍摄掉下来的橙色矩形呢 这是我的代码 function initCanvas var ctx document getEle
  • 从参数设置 Rmarkdown 中的文档标题

    我有一个运行良好的 Rmarkdown 模板 并且对其进行了参数化 这样我就可以从不同的数据源生成同一报告的变体 但是 我想更改每种情况下的报告标题 我怎么做 这是我迄今为止拥有的 YAML 标头 title My Title author
  • 使用bash脚本修改配置文件

    我正在编写一个 bash 脚本来修改包含一堆键 值对的配置文件 我如何读取密钥并找到值并可能修改它 在黑暗中疯狂地修改单个值 sed c i s TARGET KEY 1 REPLACEMENT VALUE CONFIG FILE 假设目标
  • 哪个服务可以转换 AngularJS 中的元素和属性名称?

    AngularJS 在 HTML 标记和 JS 之间转换元素和属性名称 用驼峰命名法替换破折号 即 myComponent gt my component 反之亦然 哪个 AngularJS 服务或函数可以做到这一点 谢谢 尼基塔 执行此操
  • XCode“此时无法安装此应用程序。”

    在构建我的目标之一时 我对 XCode 遇到了一些小烦恼 构建成功 但是一旦在模拟器中启动它 我就会收到此提示 This app could not be installed at this time 仅当应用程序事先安装在模拟器上时才会发
  • 在 PHP 中将 SELECT 查询的结果打印为预格式化文本?

    我正在寻找一种简单快捷的方法来将 PHP 中的 MySQL SELECT 查询结果打印为预格式化文本 我想要的是能够将查询对象传递给函数并获得记录集的打印输出 就像命令行 MySQL 客户端在运行 SELECT 语句时所做的那样 下面是我希
  • 同一页面上有多个 ClojureScript 文件

    我有一个使用 Jasmine 来测试 JavaScript 的项目 我正在尝试切换到使用 ClojureScript 作为前端 我的project clj is like defproject myproject 0 1 0 SNAPSHO
  • 在 SQL Server 和 VB.Net 之间保持一致的日期时间格式的最佳方法

    我正在开发一个 VB Net 应用程序 该应用程序的操作严重依赖于日期和时间 由于如果应用程序日期格式与服务器日期格式不匹配 则日期格式可能会发生冲突 因此解决此问题的最佳实践是什么 我知道 SQL Serverdatetime格式取决于服
  • 一种更快的方法来实现 intersect() 给我的目标?

    我发现一个lot我的 matlab 函数花费的时间在这段代码中 intersect freq bins our bins 两者都可以是相当大的向量 并且仅由整数组成 我只需要知道两者中都有哪些整数 这确实是 intersect 的原始目的
  • 使用 VideoView 进行流式传输或渐进式下载视频

    我对如何使用 VideoView 播放视频感到困惑 从本地文件播放视频 作为渐进式下载和流式传输 这个例子 http davanum wordpress com 2009 12 04 android E2 80 93 videomusic
  • 面向非 Web 程序员的 Web 编程(Perl)

    我希望开始使用 Perl 进行 Web 编程 Perl 是我唯一知道的语言 问题是 除了上网之外 我对任何与网络有关的事情一无所知 我不知道从哪里开始 所以我的问题是 我从哪里开始学习网络编程 我应该知道什么 我应该用什么 需要理解的关键事
  • GTK+ g_pointer_connect 传递数据不正确

    使用 g signal connect 时 我在将数据传递给函数时遇到问题 guint x 777 gpointer ptr x g print std to string guint p c str g signal connect G
  • mongorestore 无限期挂起

    我正在尝试使用恢复数据库mongorestore来自 gzip 文件 数据库大小约为 89MB gzip 文件约为 4 4MB 但是 恢复会无限期挂起 并且不会出现错误消息 我应该如何解决这个问题 我运行的命令是 mongorestore
  • 使用 py2exe 为 python 代码构建可执行文件

    我为 Python2 7 安装了 py2exe 制作了一个 Hello World 程序 使用py2exe构建了它的exe 它运行得很好 现在 当我尝试构建实际代码的 exe 时 文件夹被创建 并且 exe 也被创建 没有任何问题 但是当我
  • 是否可以使用 vscode 连接到远程 gdb 目标?

    我正在尝试设置配置以附加到使用 Visual Studio 代码运行 gdbserver 的远程 C C gdb 目标 目前支持吗 如果是这样 我该如何克服这些限制 地址和端口选项表明它们不支持 C C 我可以强制代码使用 gdb 的特殊远
  • Spring安全吃Angularjs POST请求

    使用 Spring Security 自定义登录表单时 我从 UI 传递的参数在 HttpServletRequest 中无法访问 class StatelessLoginFilter extends AbstractAuthenticat
  • 令牌访问中的 Google oAuth2 redirect_uri_mismatch

    我正在尝试使用 Google oAuth2 从一次性代码访问令牌 但我收到一条错误消息redirect uri mismatch在回应中 不过我已经添加了redirect uri在控制台中 我有我的Authorized redirect u
  • 如何在不使用位置信息的情况下将 MCC + MNC 映射到 iOS Objective-C 中的用户电话国家/地区代码?

    我想要用户电话号码的实际国家 地区代码 而不提示用户位置权限 我怎样才能得到它 这是我用来获取 MCC 和 MNC 的代码 CTTelephonyNetworkInfo networkInfo CTTelephonyNetworkInfo
  • Scapy:如何获取完整的 IP 数据包标头?

    在 Scapy 中 我想要manually将数据包与其相应的 ICMP 超时消息进行匹配 我需要匹配 ICMP 数据包的 IP in ICMP 字段 IP 标头和数据包的前 8 个字节 ICMP 数据包不是问题 icmpPayload st