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 数据包标头? 的相关文章

  • 无法在我的 Django 项目中使用 Sphinx 生成自动文档

    我正在向我的 Django 项目添加文档 github链接 https github com augustakingfoundation queryjane app 该项目是开源的 使用sphinx 但是当尝试生成python文件的auto
  • 安装tensorflow的正确命令

    当尝试在 Anaconda 上安装 Tensorflow 时 我尝试了两种类型的命令 conda install tensorflow gpu工作得很好 然而 当尝试conda install c anaconda tensorflow g
  • 为什么 pandas 在简单的数学运算上比 numpy 更快?

    最近 我观察到 pandas 的乘法速度更快 我在下面的例子中向您展示了这一点 如此简单的操作怎么可能做到这一点 这怎么可能呢 pandas 数据帧中的底层数据容器是 numpy 数组 测量 我使用形状为 10k 10k 的数组 数据框 i
  • 如何在 QTableView 标题中单击鼠标右键单击上下文菜单?

    下面的示例代码 很大程度上受到here http www saltycrane com blog 2007 12 pyqt 43 qtableview qabstracttablemodel 有一个右键单击上下文菜单 当用户单击表中的单元格
  • minAreaRect OpenCV 返回的裁剪矩形 [Python]

    minAreaRectOpenCV 中返回一个旋转的矩形 如何裁剪矩形内图像的这部分 boxPoints返回旋转矩形的角点的坐标 以便可以通过循环框内的点来访问像素 但是在 Python 中是否有更快的裁剪方法 EDIT See code在
  • Python设置1和True的解释

    在 IPython 3 交互式 shell 中 In 53 set2 1 2 True hello In 54 len set2 Out 54 3 In 55 set2 Out 55 hello True 2 是因为 1 和 True 得到
  • Python函数组成

    我尝试使用良好的语法来实现函数组合 这就是我所得到的 from functools import partial class compfunc partial def lshift self y f lambda args kwargs s
  • Python 中 time.sleep 和多线程的问题

    我对 python 中的 time sleep 函数有疑问 我正在运行一个脚本 需要等待另一个程序生成 txt 文件 虽然 这是一台非常旧的机器 所以当我休眠 python 脚本时 我遇到了其他程序不生成文件的问题 除了使用 time sl
  • Python sys.modules 包含尚未导入的模块

    我试图了解加载的模块与导入的模块之间的区别 如果有的话 我正在使用 Python 2 7 3 并且只是从命令行运行 Python 如果我执行 import sys sys modules 我得到一个列表 其中包括os 例如 文档说sys m
  • 无法在我的程序中使用 matplotlib 函数

    我正在 Windows 10 中运行 Anaconda 安装 conda 版本 4 3 8 这是我尝试在 python 命令行中运行的代码 import matplotlib pyplot as plt x 1 2 3 4 y 5 6 7
  • Django Web 应用程序中的 SMTP 问题

    我被要求向使用 Django Python 框架实现的现有程序添加一个功能 此功能将允许用户单击一个按钮 该按钮将显示一个小对话框 表单以输入值 我确实编写了一些代码 显示电子邮件已发送的消息 但实际上 它没有发送 My code from
  • 一个类似 dict 的 Python 类

    我想编写一个自定义类 其行为类似于dict 所以 我继承自dict 不过 我的问题是 我是否需要创建一个私有的dict我的成员 init 方法 我不明白这个有什么意义 因为我已经有了dict如果我只是继承自的行为dict 谁能指出为什么大多
  • django 中的身份验证方法返回 None

    你好 我在 django 中做了一个简单的注册和登录页面 当想要登录时 登录视图中的身份验证方法不返回任何内容 我的身份验证应用程序 模型 py from django db import models from django contri
  • 我可以在 if 语句中使用“as”机制吗

    是否可以使用as in if类似的声明with我们使用的 例如 with open tmp foo r as ofile do something with ofile 这是我的代码 def my list rtrn lst True if
  • 如何处理 Tkinter 中的窗口关闭事件?

    如何在 Python Tkinter 程序中处理窗口关闭事件 用户单击 X 按钮 Tkinter 支持一种称为协议处理程序 http web archive org web 20201111215134 http effbot org tk
  • 在 for 循环中访问 itertools 产品的元素

    我有一个列表列表 是附加 itertools 产品的一些其他结果的结果 我想要的是能够使用 for 循环访问列表列表中列表的每个元素 但我无法访问所有元素 我只能访问最后一个列表的元素 结果是一个非常巨大的列表列表 例如 1 2 4 3 6
  • 旧版本的 spaCy 在尝试安装模型时抛出“KeyError: 'package'”错误

    我在 Ubuntu 14 04 4 LTS x64 上使用 spaCy 1 6 0 和 python3 5 为了安装 spaCy 的英文版本 我尝试运行 这给了我错误消息 ubun ner 3 NeuroNER master src pyt
  • 如何在supervisord中设置组?

    因此 我正在设置 Supervisord 并尝试控制多个进程 并且一切正常 现在我想设置一个组 以便我可以启动 停止不同的进程集 而不是全部或全无 这是我的配置文件的片段 group tapjoy programs tapjoy game1
  • python 日志记录替代方案 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 蟒蛇记录模块 http docs python org library logging html使用起来
  • PYTHON:从 txt 文件中删除 POS 标签

    我有以下 txt 文件 其中包含 POS 词性 http en wikipedia org wiki Part of speech tagging 每个单词的标签 不用 jj到 说 vb 我 ppss是 bedz愤怒 jj在 在 dt无与伦

随机推荐

  • 将文本区域包裹在 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