使用 Linux netfilter 将源 IP 地址从 struct iphdr* 转换为等效字符串

2023-11-23

我想将使用 netfilter 捕获的数据包中的源和目标 IP 地址转换为 char *。

在我的 netfilter 挂钩函数中,我有:

sock_buff = skb; // argument 2 of hook function

// ip_header is struct iphdr*
ip_header = (struct iphdr *)skb_network_header(sock_buff);

// now how to convert ip_header->saddr & ip_header->daddr to char *
// ip_header->saddr & ip_header->daddr are of type __be32

Thanks.


内核家族printf()函数有一个特殊的 IP 地址格式说明符(%pI4对于 IPv4 地址,%pI6对于 IPv6)。

因此,对于 IPv4,您可以使用如下内容:

char source[16];
snprintf(source, 16, "%pI4", &ip_header->saddr); // Mind the &!

或者写入动态分配的内存。

如果您只想打印调试输出,您也可以使用printk()。对于许多其他功能%p, see 这个文件.

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

使用 Linux netfilter 将源 IP 地址从 struct iphdr* 转换为等效字符串 的相关文章

  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现

随机推荐

  • 使用依赖注入注入依赖注入器

    对于依赖注入来说相当陌生 我试图弄清楚这是否是一种反模式 假设我有 3 个程序集 Foo Shared this has all the interfaces Foo Users references Foo Shared Foo Paym
  • @RefreshScope 不工作 - Spring Boot

    我正在遵循此处描述的方法 https github com jeroenbellen blog manage and reload spring properties 唯一的区别是 就我而言 这些属性在多个类中使用 因此我将它们全部放在一个
  • Facebook 登录建议需要 HTTPS - 如何在 ASP.NET MVC 中为 Facebook 登录配置 HTTP 重定向 URL?

    Facebook 建议我使用 HTTPS 重定向 URL 而不是 HTTP 我一直在尝试找到一种方法来配置它来生成 HTTPS URL 目前它正在生成 HTTP URL http example com signin facebook sc
  • 数组的大小是在编译时确定的吗?

    当我在阅读有关数组初始化的内容时本教程 我发现了这个注释 type name elements 注意 方括号内的元素字段 表示数组中元素的数量 必须是常量表达式 因为数组是静态内存块 其大小必须在程序运行之前的编译时确定 据我所知 数组在运
  • 检查一个字符是否是Java中的特殊字符[重复]

    这个问题在这里已经有答案了 可能的重复 JAVA 检查字符串中是否有特殊字符 我是一名新手程序员 正在寻求帮助确定某个字符是否是特殊字符 我的程序要求用户输入文件名 程序读取文件中的文本并确定文本中有多少个空格 数字 字母和特殊字符 我已完
  • LARAVEL5 自定义登录

    我正在使用需要自定义登录的应用程序 我必须遵循这个流程 用户将进入登录页面 用户提交登录页面 应用程序将检查用户是否在数据库中 3 1 如果用户不在数据库中 会向第三方发送请求 检查是否登录成功 3 2 如果用户在数据库中 则验证密码 现在
  • statsmodel 中的 MNLogit 返回 nan

    我正在尝试在著名的虹膜数据集上使用 statsmodels 的 MNLogit 函数 当我尝试拟合模型时 我得到 当前函数值 nan 这是我正在使用的代码 import statsmodels api as st iris st datas
  • 有没有任何工具可以比较两个网页的结构?

    我从我们的创意团队收到 HTML 页面 然后使用它们构建 aspx 页面 我经常面临的一项挑战是让我输出的 HTML 与他们的完全匹配 我几乎总是把嵌套搞砸 div 位于我的页面和母版页之间 有谁知道在这种情况下有帮助的工具 可以比较两个页
  • 模拟输入上的点击事件 - JavaScript

    我试图通过点击来模拟输入标签的点击anchor标签 这样我可以隐藏输入并将图像包装在锚标签内 这可以使用 jQuery 触发函数来工作 但我不能让它只使用 普通 Javascript jQuery 版本 let fake fake fake
  • C# 中的柯里化表达式

    我正在尝试构建一个可以输入 Linq2SQL 的表达式树 以便它将生成一个漂亮的干净查询 我的目的是构建一个过滤器 将任意单词集与 AND 和 NOT 或 OR 和 NOT 结合在一起 因为我想改变我搜索的字段 所以我最好想组成一个列表Ex
  • 无法在 Mac High Sierra 上打开 UIAutomatorviewer

    我们有配备 High Sierra 10 13 6 的全新 MacBook 其他系统信息 JAVA Version java version 11 0 1 2018 10 16 LTS Java TM SE 运行时环境 18 9 内部版本
  • 在 Android 中创建带有可点击图像的网格视图

    我想创建一个带有可单击图像的网格视图 每当单击图像时 相应的值就会显示在网格视图下方 我面临的问题是在设计部分 我不知道如何设计这样的网格视图 每次我尝试这样做时 都会得到一些不好的结果 我目前还没有 Android UI 设计经验 我怎样
  • 使用 EmptyWorkingSet 有哪些副作用?

    我使用下面的代码来释放某些正在运行的程序的内存 因为我自己的程序需要大量内存资源才能运行得更快 DllImport psapi dll public static extern bool EmptyWorkingSet IntPtr hPr
  • 在 Python 中建模时检测多共线性或具有线性组合的列:LinAlgError

    我正在为具有 34 个因变量的 logit 模型进行数据建模 并且它不断抛出奇异矩阵错误 如下所示 Traceback most recent call last File
  • iowin32.h 中的 OF 宏

    我无法理解 minizip 的 iowin32 h 中的以下行 void fill win32 filefunc OF zlib filefunc def pzlib filefunc def Source 过时但仍然相关 什么是OF宏呢
  • Spring Boot (JAR),具有多个调度程序 servlet,用于使用 Spring Data REST 的不同 REST API

    我有一个项目 它使用 Spring Boot 生成一个可执行 JAR 该 JAR 通过 Spring Data REST 公开 REST API 它还与 Spring Security OAuth 集成 效果很好 我的问题如下 我希望为 R
  • Powershell-SetForegroundWindow

    使用 powershell 代码 我尝试更改窗口的位置 工作正常 并将该窗口 始终位于顶部 请在下面找到我的代码 Import Module C install WASP wasp dll for i 1 i le 300000 i all
  • 为什么我的 React 组件渲染了两次?

    我不知道为什么我的 React 组件渲染了两次 因此 我从 params 中提取电话号码并将其保存到 state 中 以便我可以通过 Firestore 进行搜索 一切似乎都工作正常 除了渲染两次 第一次渲染电话号码和零点 第二次渲染时所有
  • 如何在 C# 中根据 DTD 验证 XML 文档?

    我不想做任何花哨的事情 我只想确保文档有效 如果无效则打印错误消息 谷歌向我指出this 但似乎 XmlValidatingReader 已经过时了 至少 MonoDevelop 是这么告诉我的 编辑 我正在尝试迈赫达德的建议 但遇到了麻烦
  • 使用 Linux netfilter 将源 IP 地址从 struct iphdr* 转换为等效字符串

    我想将使用 netfilter 捕获的数据包中的源和目标 IP 地址转换为 char 在我的 netfilter 挂钩函数中 我有 sock buff skb argument 2 of hook function ip header is