免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2327 | 回复: 7
打印 上一主题 下一主题

在内核中解析IP包头,看不了IP地址,请大家指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-02 14:52 |只看该作者 |倒序浏览
我在内核里截获到IP包,然后打印它的源IP地址和目的IP地址,可是都是整形的。。。我想得到点分十进制的那种,应该怎么办?请大家指点一下,谢谢

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2009-11-02 15:23 |只看该作者
原帖由 alexhappy 于 2009-11-2 14:52 发表
我在内核里截获到IP包,然后打印它的源IP地址和目的IP地址,可是都是整形的。。。我想得到点分十进制的那种,应该怎么办?请大家指点一下,谢谢


NIPQUAD(iph->saddr)

评分

参与人数 1可用积分 +21 收起 理由
T-Bagwell + 21 我很赞同

查看全部评分

论坛徽章:
0
3 [报告]
发表于 2009-11-02 15:33 |只看该作者

回复 #2 dreamice 的帖子

谢谢你

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
4 [报告]
发表于 2009-11-02 15:35 |只看该作者
2楼dreamice版主提供的宏就是内核中最常用的。

BTW,就算没有这个宏,一个unsigned long型的IP地址,转换成点十进制的格式,应该也是一个纯C的问题吧。

评分

参与人数 1可用积分 +9 收起 理由
T-Bagwell + 9 我很赞同

查看全部评分

论坛徽章:
0
5 [报告]
发表于 2009-11-02 16:02 |只看该作者
学习。。。

评分

参与人数 1可用积分 -9 收起 理由
T-Bagwell -9 我不赞同

查看全部评分

论坛徽章:
0
6 [报告]
发表于 2009-11-03 09:53 |只看该作者
原帖由 godbach 于 2009-11-2 15:35 发表
2楼dreamice版主提供的宏就是内核中最常用的。

BTW,就算没有这个宏,一个unsigned long型的IP地址,转换成点十进制的格式,应该也是一个纯C的问题吧。

呵呵,看了实现我才知道。。。我以为它还要用什么算法才能转换成点十进制呢

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
7 [报告]
发表于 2009-11-03 10:03 |只看该作者
原帖由 alexhappy 于 2009-11-3 09:53 发表

呵呵,看了实现我才知道。。。我以为它还要用什么算法才能转换成点十进制呢


恩。本来IP地址是为了便于记录,所以用了点十进制,也就是每个字节代表一个段而已。

论坛徽章:
0
8 [报告]
发表于 2009-11-03 13:57 |只看该作者
char *inet_ntoa (__u32 ina){


        static char buf[4*sizeof "123"];


        unsigned char *ucp = (unsigned char *)&ina;


        sprintf (buf, "%d.%d.%d.%d", ucp[0] & 0xff, ucp[1] & 0xff, ucp[2] & 0xff, ucp[3] & 0xff);


        return buf;


}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP