使用 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* 转换为等效字符串 的相关文章

  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 如何忽略“有符号和无符号整数表达式之间的比较”?

    谁能告诉我必须使用哪个标志才能使 gcc 忽略 有符号和无符号整数表达式之间的比较 警告消息 gcc Wno sign compare 但你确实应该修复它警告你的比较
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

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

    对于依赖注入来说相当陌生 我试图弄清楚这是否是一种反模式 假设我有 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