忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
楼主: jeffyan

超级详细Tcpdump 的用法(原创) [复制链接]

论坛徽章:
0
发表于 2005-12-25 18:50 |显示全部楼层
原帖由 zenith518 于 2005-12-25 10:50 发表
其实LZ 只说明了过滤语句的用法,没有将很重要另外一个参数说明,也就是说,如果这个参数不设置正确,会导致包数据的丢失!

它就是-s 参数,snaplen, 也就是数据包的截取长度,仔细看man就会明白的!默认截取长 ...


要考虑这个参数

论坛徽章:
0
发表于 2005-12-25 18:55 |显示全部楼层
原帖由 ocean390 于 2005-12-22 19:56 发表
可是怎么能用ascii显示数据包的内容呢,一直没搞定这个问题

Ethereal 能直接显示的

论坛徽章:
0
发表于 2005-12-25 21:06 |显示全部楼层
我昨天也发现了那个参数,但是没有试,谢谢zenith518 兄弟还有楼主!

to zenith518:谢谢你!真希望与你做朋友!

论坛徽章:
0
发表于 2005-12-25 21:21 |显示全部楼层
很不错, 我虽然经常用它,还是从这篇文章里面学了不少东西

论坛徽章:
0
发表于 2005-12-25 22:22 |显示全部楼层
各位有兴趣,我可以多说一点。
LZ所说的这个格式有一个业界标准,称作bpf (Berkeley Packet Filter)包过滤语言。现在有很多抓包工具支持这个标准。包扩ethereal的capture filter, 注意不是displayfilter, 因为ethereal的display filter 使用了近似于C/C++表达式的另一套自己的表达方式。
其实,如果各位使用过libpcap的,就知道,所有的libpcap都需要snaplen 这个参数设定才能抓到整个的包数据。那如果不熟悉C/C++怎么办?,没关系那也可以结合tcpdump -xls 0 命令行加管道导向到Awk的程序来自己解析IP数据包并分析应用层的数据。如果用tcpdump+Perl的话,更可以经过简单的包数据重构,方便地组成NetPacket模块能自动识别的包数据,让现成的NetPacket模块自动解析和分析底层的IP和TCP/UDP层数据包。而你则只要懂得gawk/nawk或Perl就可以简单的自己编程来解析非标的应用层的数据了。注意,这里我并没有使用perl 的libpcap兼容模块,而是直接用tcpdump替代了。这样对Perl模块的要求降得比较低了,如果遇到非标的协议,就是不会C/C++, 没装抓包的perl模块,也可以通过自己编程来解析数剧包了!

论坛徽章:
0
发表于 2005-12-26 10:10 |显示全部楼层

我看见牛人了

楼上的,pf一下

论坛徽章:
0
发表于 2005-12-26 11:57 |显示全部楼层
我还发现一个问题就是在ethereal的最下边的显示实际包ascii字节的窗口,都不能正常显示汉字,不知道大家是否已解决此问题?

论坛徽章:
0
发表于 2005-12-26 12:41 |显示全部楼层
现在的抓包工具,都不能正确显示汉字,而在实际工作中,也可以通过其他方法弥补,这个不足。如果真需要这么做,那就需要自己解包了。如果想查看HTTP协议中的东西,在客户端IE中装一个HTTP协议查看工具插件就可以了,这样即可以看协议头,又可以看内容。要么在服务器端装支持相应编码的代理,然后dump数据。

论坛徽章:
0
发表于 2005-12-26 16:19 |显示全部楼层
to zenith518:

还好的是可以通过hex value来查包中的汉字。我是先在linux上边tcpdump出完整的package data,然后呢,将文件down到windows上来用ethereal来做查看的。

我不是很理解你所说的 '要么在服务器端装支持相应编码的代理,然后dump数据。
你说的编码的代理,我觉得这个与整个网页的charset是有关系的。可能是不同的charset,gb2312,unicode或是gbk之类的。很难理解你说的编码的代理是什么东东?

我想ethereal就是没有去分析每个包应该用什么来charset来做显示,所以都以ascii来显示了。所以汉字就显示不出来。
要想ethereal知道使用什么样的charset显示,那么就需要联系其他包里的charset设置来做显示,看来ethereal目前还没这么做,就只是简单的显示ascii。

你的回答非常好,讲出了思路,比较开阔。另外,perl确实是个好东东。

论坛徽章:
0
发表于 2005-12-26 16:45 |显示全部楼层
支持一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票8.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP