| « | November 2025 | » | | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 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中我的猜想是正确的),所以你想在电信宽带上直接捕获其他通信主机的数据包是不
现实的。
|
|
|