posted on 2007-10-09 15:58 CoffeeCat 阅读(2284) 评论(48) 编辑 收藏 引用
谢谢提供~~ 回复 更多评论
thanks 回复 更多评论
十分感谢! 回复 更多评论
非常感谢,这个太好了。 回复 更多评论
好人啊 回复 更多评论
太感谢了 回复 更多评论
非常好,感谢... 回复 更多评论
谢谢,LZ辛苦啦 回复 更多评论
谢谢! 回复 更多评论
辛苦了 多谢 回复 更多评论
我的论文全靠你了 见到你一定请你吃饭 哈哈 回复 更多评论
@游狼呵呵,那我先谢谢你啦 回复 更多评论
谢谢分享~~ 回复 更多评论
很感谢您 回复 更多评论
谢谢,新年快乐。 回复 更多评论
@淡月清风谢谢,也祝你新年快乐 回复 更多评论
楼主是好人...谢谢.. 回复 更多评论
不胜感激! 回复 更多评论
十分感谢 回复 更多评论
非常感谢 回复 更多评论
非常感谢你的心情劳动! 回复 更多评论
首先非常感谢你的分享!让我受益匪浅! 在这里还想请教一个问题,WinPcap的统计模式下,有没有办法根据协议(主要是IP/TCP/UDP/ARP/ICMP)统计各个协议的流量吗? 如果可以的话,麻烦给个思路!谢谢 因为鄙人目前能够想到的只能根据捕获的每个包的长度进行累加长度! 不胜感激! 回复 更多评论
@谢清阳您好貌似可以用pcap_compile和pcap_setfilter来设置过滤器,文档的示例代码就是使用这两个函数来过滤,并只统计TCP协议的流量~您可以参考一下文档示例代码,尝试一下~http://www.coffeecat.net.cn/winpcap/html/group__wpcap__tut9.html 回复 更多评论
谢谢你的回复! 事实上,那个例子我之前就看过了,我的问题在于我要抓的是所有的协议数据包,不管经过的是tcp还是udp;但我还要分别统计IP/TCP/UDP/ARP/ICMP的网络流量。如果用设置了一个过滤器,我就没办法抓到所有的包了! 那看来我只能是根据抓回来的包做统计了… 回复 更多评论
非常感谢 顶一下已表谢意 回复 更多评论
感谢辛苦翻译! 回复 更多评论
非常感谢楼主的辛劳贡献,向楼主致意! 回复 更多评论
THX 回复 更多评论
强烈支持楼主。 回复 更多评论
好东东!!!!!! 回复 更多评论
非常感谢译者,你的贡献大家一定会记住的! 回复 更多评论
感谢CoffeeCat的劳动… 在“收集并统计网络流量”中,注释的翻译有一个小错误 原文中的microsecond应该是微妙,而不是毫秒 这点从代码也可以看出… 同时,我还有两行代码没看明白,希望请教以下coffeecat Bps.QuadPart=(((*(LONGLONG*)(pkt_data + 8)) * 8 * 1000000) / (delay)); 这行代码中的(pkt_data + 8)指向的是什么数据呢,按我的理解,pkt_data应该是指向一个以太网数据包,第8(从0开始)个字节并不是指向长度… 所以这里让我感到费解,不知是否是统计模式(MODE_STAT)与MODE_CAPT有所区别,与类似的下一行代码我也无法理解… Pps.QuadPart=(((*(LONGLONG*)(pkt_data)) * 1000000) / (delay)); Coffeecat可否帮我解释下,感激不尽!! 回复 更多评论
@vinson您好,首先感谢您提出的那个错误,我已经更正。pkt_data是一个数据包,它包含了数据包的协议头。我想这里的pkt_data+8,应该是让它指向协议头中表示数据包数据部分长度的那块内存,并转换成LONGLONG类型数据(64-bit整数)。也就是说,协议头的第8到第16个字节之间保存的是数据包数据部分的bit长度的,因此,可以通过(*(LONGLONG*)(pkt_data + 8)) 来获取到,然后*8将bit转换成byte,最后*100000/delay将它转换成每秒的byte数。下面一句程序的原理一样的,只是获取到的是整个数据包的长度(包括了协议头)。按照程序的写法,整个数据包的长度应该是放在协议头的第1到第8个字节之间。理解这两句程序的关键,就是要知道pkt_data所包含的协议头的结构。您可以网上搜索一下,看看pkt_data包含的协议头的结构是怎么样的,我想,您就能理解这两句代码了。 回复 更多评论
哇,想不到CoffeeCat的回答如此迅速… 你说的那些是从代码可以推测出来的,从winpcap的文档中我并没有找到pkt_data指向的内存会包含什么内容 我还尝试了下,在MODE_STAT和MODE_CAPT下,pkt_data指向的内存含义是不同的… 不过还是很谢谢你! 回复 更多评论
@vinson您好。我又查阅了一下WinPcap资料,发现在本代码的后面,就写有了pkt_data在统计模式下的内存结构。pkt_data提供了两个64位的计数器,分别是收到的数据包的数量和字节总数。因此,我上面说“前8个字节是整个数据包的长度”是错误的,还请见谅。根据手册上关于回调函数参数的介绍,在捕获模式MODE_CAPT下,pkt_header会指向捕获到的数据包头,不过不是协议头。 pkt_data会指向数据包的数据部分,包括了协议头。 回复 更多评论
非常感谢你! 回复 更多评论
coffeeCat 您好! 我在使用WINPCAP时传输文件想要把所有的文件内容全部捕获,当我把他写入Dump文件时发现只捕获其中一部分,不是全部内容. 请问有什么好的方法. 期待您的回复! QQ:270076483 回复 更多评论
@huangdj您好,十分抱歉,您说的问题我不太懂~因此不能给您满意的答复~~ 回复 更多评论
我的意思是WINCAP 写dump文件时,本来文件内容是11MB,写入Dump文件的数据却没有11MB,传输小的文件可以全部捕获,比较大的文件就有丢失.我后来把pcap_open函数中的超时设置比较长的时间时,捕获的数据比以前的多了些,但还是捕获不全.是WINCAP本身的问题还是什么原因,有什么好的方法能全部捕获? 回复 更多评论
@huangdj您好,非常抱歉,我的回复让您产生了歧义,我的意思是我对您说的技术问题不是很懂,因为我已经有很长时间没有接触过WinPcap了,因此不能给您满意的答复,敬请谅解! 回复 更多评论
感谢你的分享 回复 更多评论
非常感谢! 回复 更多评论
感谢coffeecat的劳动,发现一个输入错误。 http://www.coffeecat.net.cn/WinPcap/html/group__wpcap__tut9.html 中的 “采样 ” 输成了 “残阳”。 回复 更多评论
@yao__bo谢谢您的提醒~~我今天晚上就修改~~ 回复 更多评论
顶 支持啊 回复 更多评论
很感谢!拿了东西一定要感谢一下,呵呵 多谢了! 回复 更多评论
Powered by: IT博客网 Copyright © CoffeeCat