欢迎访问binary的Blog   虚心使人进步,骄傲使人落后。

          W3CHINA Blog首页    管理页面    写新日志    退出



«November 2025»
1
2345678
9101112131415
16171819202122
23242526272829
30


登录

用户名称:
登陆密码:
密码保存:


联系我
email: binaryluo(at)gmail.com

我的分类

日志更新

最新评论

留言板

Blog信息

 
blog名称:二进制-虚心使人进步,骄傲使人落后。
日志总数:42
评论数量:370
留言数量:88
访问次数:644214
建立时间:2005年2月19日




留言板(签写留言)

关于winpcap捕获非以太包

ms0627(游客)发表留言于2009/4/19 17:09:46

我想请问您,如果网卡上收到的是非以太包的话,是不是也可以用winpcap捕获到? 

| 编辑 | 主人回复 | 删除
 


WINPCAP抓不到数据

anatoli(游客)发表留言于2008/5/26 10:32:49

你好!请问一下,我使用WINPCAP,设置了过滤器只抓符合自己机器IP的数据,打开端口后开始侦听。然后别人用聊天工具给我发送一个比较大的文件50M左右吧,但是经过对比根本没有抓到一点数据。请问这个是什么原因?是因为效率问题造成丢包吗?如果是,怎么改进呢?

以下为blog主人的回复:

 你好!丢包不会一个包都抓不到。你这样说得很粗,也不好说到底是什么原因。

 

| 编辑 | 主人回复 | 删除
 


pkt_data的问题

aleks(游客)发表留言于2008/1/7 13:34:39

pcap_handler(u_char* user,const struct pcap_pkthdr* pkt_header,const u_char* pkt_data)

这个函数中第3个参数pkt_data,这应该一个字符串指针,指向数据包内容。那么我请问下:为什么用下面的语句却显示不出来字符串的内容的?如果我想以16进制显示出来,那么应该怎么做呢?

cout<<pkt_data<<endl;

或者printf("%x",pkt_data);

以下为blog主人的回复:

字符串的格式控制标识是%s,%x只是显示一个字符。所以你应该把语句改成:

printf("%s",pkt_data);

 

| 编辑 | 主人回复 | 删除
 


老兄,是我没说清楚。。。

0发表留言于2006/6/12 18:14:37

谢谢各位

你们说的我都明白,而且我也都用过。。。

我想问的是:怎么通过Wpcap里的数据结构获取本机的MAC地址(不通过以太帧报文);

如果不用包过滤,没有本机IP,又怎么识别发给自己的以太帧报文那???你还得用本机的MAC地址啊!!!

我的本意目的是用Wpcap作一个简单的IP协议栈!

 

| 编辑 | 主人回复 | 删除
 


关于数据包内容的显示

斑斑(游客)发表留言于2006/6/8 18:54:05

 pcap_handler(u_char* user,const struct pcap_pkthdr* pkt_header,const u_char* pkt_data)

这个函数中第3个参数是pkt_data,这应该是一个字符串指针,指向数据包内容。那么我请问下:为什么用下面的语句却显示不出来字符串的内容的?如果我想以16进制显示出来,那么应该怎么做呢?

cout<<pkt_data<<endl;

或者printf("%x",pkt_data);

 

| 编辑 | 主人回复 | 删除
 


pcap_loop()截获的数据包究竟是什么格式的?

高山(游客)发表留言于2006/6/1 19:06:10

IPv4数据包格式:这个格式里面没有MAC字段,只有IP字段。

“IP数据包格式里面不包含MAC部分”就是这个意思

还有你解答的帧格式是以太网V2的帧格式。

IEEE802.3帧格式是把V2帧格式中 类型字段换成长度字段。这里的长度指的就是 数据部分的长度。

我们现在都使用的电信宽带,截获的帧是以太网V2格式的??

以下为blog主人的回复:

 1.IP数据报不包含MAC地址,你如果需要使用MAC地址的话就要在去帧头的时候保存下来。

  2.IEEE802.2和802.3分别规定了两种不同的以太帧格式(可以参看《TCP/IP详解卷一:协议》第二章),我上次给出的那个以太帧结构是802.3的帧结构。以太网技术主要有: 10Base2以太网是802.3a,10BaseT和100BaseT是802.3i,千兆以太网。其中使用最多的技术是10Base2(可以参看《计 算机网络——自顶向下方法与Internet特色》P369)。关于电信的宽带链路层使用的是什么协议我不是很清楚,不过就我猜想,电信宽带网应该是广域 网而不是局域网,所以其链路层协议应该不是以太网协议(802.2或802.3x)。

 3.Winpcap捕获数据包的前提是要在广播网,将网卡设置为混杂模式。电信宽带网使用 的是ADSL(非对称数字用户环路)技术,主要运行在原有普通电话线路上,所以一个宽带用户的数据只在其电话线上传输,这就相当于每个宽带用户都独享自己 的带宽。而且各个电话线是用程控交换机连接的,这就是说从链路层来看,电信宽带网使用的是点对点链路(这也从一定程度上证明了2中我的猜想是正确的),所以你想在电信宽带上直接捕获其他通信主机的数据包是不 现实的。

 

| 编辑 | 主人回复 | 删除
 


留言数:22  « 1 2 3 4 »
给binaryluo签写留言:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写留言内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.775 second(s), page refreshed 144806009 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号