【发布时间】:2009-02-25 04:27:00
【问题描述】:
我正在编写一个注册 netfilter 钩子的内核模块。我正在尝试使用 sk_buff->saddr 成员获取调用者的 IP 地址。有没有办法以人类可读的方式获取 IP,即 x.x.x.x 格式?
我找到了函数inet_ntop(),但它似乎在内核头文件中不可用。如何将 \xC0\xA8\x00\x01 转换为 192.168.0.1 ?
【问题讨论】:
-
inet_ntop() 和它的兄弟 inet_pton() 实际上在 arpa/inet.h 中,我现在正在寻找内核实现。
-
嗯,netfilter 的日志目标必须这样做......我会去那里看看。
-
&Rohit:说实话,如果你不知道如何格式化字符串中的字节,你可能不应该编写内核模块。先尝试一些用户空间的东西。
-
&Evan:我同意,但对此我无能为力。火洗礼是我的看法。
标签: c linux-kernel netfilter