sniffer抓不到数据包

politeness1983 2008-04-07 05:19:27
用winpcap做的一个sniffer,能抓到包,但是抓不全.打开网页时能抓到很多包,但是抓不到msn聊天的数据包.并且流经本机的局域网内其他机子的数据包能抓到的也很少,请问这是什么原因造成的?
加QQ:411928135
...全文
484 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
politeness1983 2008-04-08
  • 打赏
  • 举报
回复
我已经没有设置过滤了
wuyuncxl 2008-04-08
  • 打赏
  • 举报
回复
先把除了MSN之外的所有应用程序都关掉,然后用Wireshark、Sniffer之类的软件不设过滤器抓取所有包,据此判断MSN使用何种报文,再用你的软件验证能否抓到。
wuyuncxl 2008-04-08
  • 打赏
  • 举报
回复
正确设置过滤器。
scq2099yt 2008-04-08
  • 打赏
  • 举报
回复
将过滤范围设低点
politeness1983 2008-04-08
  • 打赏
  • 举报
回复
过滤器就是三条语句吧:
char filter_str[]="";
pcap_compile(p->hdevice,filter,filter_str,0,p->mask);
pcap_setfilter(p->hdevice,filter);
先前也已经把网卡设置成混杂模式了:
hdevice=pcap_open_live(d->name,65536,1,0,errbuf);
收包用的是这条:
pcap_next_ex(p->hdevice,&pkt_header,&pkt_data)
politeness1983 2008-04-08
  • 打赏
  • 举报
回复
对照着别人的程序,终于找到问题了:
while(pcap_next_ex(p->hdevice,&pkt_header,&pkt_data))
改成
while(pcap_next_ex(p->hdevice,&pkt_header,&pkt_data)>=0)就可以了

同样也谢谢上面几位的回答
greatws 2008-04-07
  • 打赏
  • 举报
回复
过滤器设置对了没有?
[menu_102] 70001=文件(&F) 40024=开始捕获(&S) 40025=停止捕获(&T) 40045=保存配置(&C) 40046=载入配置(&O) 40034=保存数据包数据到文件 40035=载入数据包数据文件 40039=导出 TCP/IP 流报告(&E) 40001=保存数据包摘要(&A) 40009=属性(&P) 40002=退出(&X) 70002=编辑(&E) 40031=复制(&C) 40007=全选(&A) 40015=全部取消选定(&D) 40032=下一项(&N) 40033=上一项(&P) 70003=查看(&V) 40005=显示网格线(&G) 40028=显示气球提示(&T) 40010=HTML 报告 - TCP/IP 流(&H) 40011=栏位设定(&N) 40012=自动调整栏的宽度(&A) 70004=选项(&O) 71001=显示模式(&M) 41101=自动(&A) 41102=ASCII(&S) 41103=16进制(&H) 71002=显示协议(&P) 41201=&TCP 41202=&UDP 41203=&ICMP 40027=显示 ASCII 码大于 127 的字符(&C) 40041=显示捕获时间(&T) 40042=将 IP 地址解析为主机名 40044=显示过滤设置 40040=高级选项(&A) 40043=捕获过滤设置 40026=选择设备(&O) 70005=帮助(&H) 40003=关于(&A) 41104=&URL 列表 [menu_104] 70001=Popup1 40010=生成 TCP/IP 流的 HTML 报告(&H) 40039=保存 TCP/IP 流报告(&E) 40001=保存数据包摘要(&A) 40011=栏位设定(&N) 40012=栏位自动宽度(&A) 40007=选择全部(&A) 40015=取消已选定(&D) 40031=复制(&C) 40032=下一项(&N) 40033=上一项(&P) 70002=Popup2 [dialog_105] caption=属性 1=确定 [dialog_108] caption=捕获选项 1007=原始套接字 (仅Windows 2000/XP) 1008=使用 WinPcap 包捕获驱动 1005=List1 1=确定 2=取消 1006=捕获方式 1009=选择网卡: 1045=选择网卡: [dialog_112] 1=确定 [dialog_113] caption=高级选项 1035=即时显示模式 - 捕获的同时列出 TCP/IP 会话 1011=每行字符数: 1013=显示时,在每 1025=显示 ASCII 字符 1026=在每行开头显示偏移量 1014=自动决定显示模式时要检查的字符数: 1032=不可显示的 ASCII 字符替换为: 1036=自动模式中, 若数据长度大于此限制则不显示16进制数据 1038=在下部面板中不显示数据长度大于此限制的项 1019=选择 1022=选择 1029=选择 1=确定 2=取消 1010=16进制显示选项 1015=个字符后插入额外的空格 1016=文字颜色 1017=源于本地主机的 TCP/IP 流的文字颜色: 1020=源于远程主机的 TCP/IP 流的文字颜色: 1030=捕获时间的文字颜色: 1031=常规显示选项 1034=捕获 1039=KB 1041=KB 1042=捕获同时显示 TCP/IP 会话内容开始的部分 1043=仅显示 TCP/IP 统计数据, 不在文件中保存捕获数据 1044=捕获时亦获取进程信息 1045=摘要模式 (每个连接之间不换行) [dialog_114] 1=确定 2=取消 3=清除 1037=输入一条或多条过滤规则, 以空格或回车分隔。以下是过滤字规则的几个例子: [dialog_1096] caption=栏位设定 1003=上移(&U) 1004=下移(&D) 1006=显示(&S) 1007=隐藏(&H) 1008=默认 1=确定 2=取消 1000=钩选要显示的内容, 用上移或下移按钮排列显示顺序 1002=栏位宽度(像素): [strings] 4=%d 个 TCP/IP 会话 5=, 选定 %d 个 6=创建本文件使用的是 7=选择保存文件的名称 8=数据包摘要 9=无法启动选定网卡上的包捕获。 10=该项所含数据长度超过 %d KB 限制。 11=可使用导出选项将此项保存到文件中。 12=此 TCP/IP 会话太大,无法在捕获同时显示。 13=停止捕获后将显示会话的完整内容。 14=正在加载... %d 15=已捕获 %d 个数据包 16=错误: 无法创建数据包文件! 17=正在捕获... 18=选择用于保存已捕获数据的文件名 19=载入存有数据包数据的文件 20=确定要停止捕获并退出 SmartSniff 吗? 21=选择用于保存已捕获的数据包流的文件名称 22=数据包流报告 23=当前操作含有非常大的数据包流,载入过程可能很慢,要继续吗? 24=选择要保存的配置文件名 25=选择要载入的配置文件 51=捕获过滤选项 52=显示过滤选项 101=字节 501=文本文件 502=制表符分隔的文本文件 503=空格分隔的表格化文本文件 504=HTML 文件 - 水平方式 505=HTML 文件 - 垂直方式 506=XML 文件 521=ICMP 522=TCP 523=UDP 541=文本文件 542=HTML 文件 543=原始数据文件 601=SmartSniff 数据包文件 602=tcpdump/libpcap 文件 621=SmartSniff 配置文件 1001=编号 1002=协议 1003=本地地址 1004=远程地址 1005=本地端口 1006=远程端口 1007=数据包数量 1008=包含封装信息的总数据量 1009=捕获时间 1010=不含封装信息的数据量 1011=服务名称 1012=本地主机 1013=远程主机 1014=进程号 1015=进程文件名 1051=IP 地址 1052=设备名称
在日常的局域网维护中,对于一款软件,不仅要知道其表面的功能,更要深入了解其工作原理,这样才能更有效地挖掘软件更高级的应用及功能,以此来解决网络中的疑难故障。下面结合一些日常网络故障实例,介绍一下Sniffer在局域网维护中的综合应用。   Sniffer软件是NAI公司推出的功能强大的协议分析软件,具有捕获网络流量进行详细分析、实时监控网络活动、利用专家分析系统诊断问题、收集网络利用率和错误等功能。Sniffer Pro 4.6可以运行在各种Windows平台上,只要安装在网络中的任何一台机器上,都可以监控到整个网络。以下以Sniffer 4.7.5汉化版本为例,介绍一下Snffer在局域网维护中的具体应用。   一、Sniffer软件的安装   在网上下载Sniffer软件后,直接运行安装程序,系统会提示输入个人信息和软件注册码,安装结束后,重新启动,之后再安装Sniffer汉化补丁。运行Sniffer程序后,系统会自动搜索机器中的网络适配器,点击确定进入Sniffer主界面。   二、Sniffer软件的使用   打开Sniffer软件后,会出现主界面(如图1),显示一些机器列表和Sniffer软件目前的运行情况,上面是软件的菜单,下面有一些快捷工具菜单,左侧还有一排快捷菜单按钮。由于使用的是汉化版软件,因此部分词语汉化不是太准确。   1、获取网络中的机器列表   Sniffer软件运行后,首先要搜索网络中的机器。在“工具”菜单中找到“地址簿”选项并运行,在“地址簿”中的左侧工具菜单中,可以找到一个“放大镜”的图标,这是“自动搜索”的按钮。运行“自动搜索”功能后,在IP地址段中输入网络的开始IP地址和结束地址,然后系统会自动搜索。搜索完成后,会出现一个如图1的机器列表。   2、保存机器列表   Sniffer搜索网络中所有的机器列表后,可以在“数据库”菜单中选择“保存地址簿”选项,将当前的机器列表保存,以备日后使用。由于Sniffer的地址簿保存了网络中客户机的IP地址、网卡的MAC地址等信息,如果网络中的客户机更换了网卡,则必须重新搜索机器列表并重新保存地址簿。如果网络中没有新机器增加,就无需更新此地址簿。   三、Sniffer菜单及功能简介   Sniffer进入时,需要设置当前机器的网卡信息。进入Sniffer软件后,会出现如图2的界面,可以看到Sniffer软件的中文菜单,下面是一些常用的工具按钮。在日常的网络维护中,使用这些工具按钮就可以解决问题了。   1、主机列表按钮:保存机器列表后,点击此钮,Sniffer会显示网络中所有机器的信息(如图1),其中,Hw地址一栏是网络中的客户机信息。网络中的客户机一般都有惟一的名字,因此在Hw地址栏中,可以看到客户机的名字。对于安装Sniffer的机器,在Hw地址栏中用“本地”来标识;对于网络中的交换机、路由器等网络设备,Sniffer只能显示这些网络设备的MAC地址。   入埠数据包和出埠数据包,指的是该客户机发送和接收的数据包数量,后面还有客户机发送和接收的字节大小。可以据此查看网络中的数据流量大小。   2、矩阵按钮:矩阵功能通过圆形图例说明客户机的数据走向,可以看出与客户机有数据交换的机器。使用此功能时,先选择客户机,然后点击此钮就可以了。   3、请求响应时间按钮:请求响应时间功能,可以查看客户机访问网站的详细情况。当客户机访问某站点时,可以通过此功能查看从客户机发出请求到服务器响应的时间等信息。   4、警报日志按钮:当Sniffer监控到网络的不正常情况时,会自动记录到警报日志中。所以打开Sniffer软件后,首先要查看一下警报日志,看网络运行是否正常。   四、Sniffer在网络维护中的应用——解决网络传输质量问题   Sniffer在网吧网络中的应用,主要是利用其流量分析和查看功能,解决网吧中出现的网络传输质量问题。   1、广播风暴:广播风暴是网吧网络最常见的一个网络故障。网络广播风暴的产生,一般是由于客户机被病毒攻击、网络设备损坏等故障引起的。可以使用Sniffer中的主机列表功能,查看网络中哪些机器的流量最大,结合矩阵就可以看出哪台机器数据流量异常。从而,可以在最短的时间内,判断网络的具体故障点。   2、网络攻击:随着网络的不断发展,黑客技术吸引了不少网络爱好者。于是,一些初级黑客们,开始拿网吧来做实验,DDoS攻击成为一些黑客炫耀自己技术的一种手段,由于网吧本身的数据流量比较大,加上外部DDoS攻击,网吧的网络可能会出现短时间的中断现象。对于类似的攻击,使用Sniffer软件,可以有效判断网络是受广播风暴影响,还是来自外部的攻击。   3、检测网络硬件故障:在网络中工作的硬件设备,只要有所损坏,数据流量就会异常,使用Sniffer可以轻松判断出物理损坏的网络硬件设备

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧