中易网

Wincap设置过滤器,该如何解决

答案:2  悬赏:80  
解决时间 2021-12-12 17:30
Wincap设置过滤器,该如何解决
最佳答案
我按照Wincap官方的例子,设置我的抓包程序的过滤器。
BOOL CapturePacket::SetFilter(char * packet_filter)//设置过滤器{if (pcap_compile(adhandle, &fcode, packet_filter, 1, netmask) <0 )//设置过滤器{AfxMessageBox(Unable to compil e the packet filter. Check the syntax.);
TRACE(Error reading the packets: %s\n, pcap_geterr(adhandle));//语法错误,&fcode为0

pcap_freealldevs(alldevs);//return -1;}if (pcap_setfilter(adhandle, &fcode)<0)//设置过滤器{AfxMessageBox(Error setting the filter.);

pcap_freealldevs(alldevs);return -1;}// pcap_loop(adhandle, 0, packet_handler, NULL);return 0;}pcap_compile函数执行返回小于0的数,就是没设置成功。于是我调试发现是&fcode为0。
就是开始定义struct bpf_program fcode;
然后pcap_compile,pcap_setfilter的参数调用啊!没其他地方调用,我问别人说,这个值要有值才行。
在pcap_compile(adhandle, &fcode, packet_filter, 1, netmask)中,fcode的使用方式
基本上就是 :struct bpf_program fcode;然后传给这个接口就好了,这个参数的值是由pcap_compile来写的
我觉得之所以返回值小于0,你可能需要检查:
(1)adhandle,这个是一个网卡;
(2)packet_filter是不是符合winpcap的语法规则
(3)netmask是否正确,拿不准的话可以用0xffffff
希望对你有用
------解决方案--------------------------------------------------------
int pcap_setfilter ( pcap_t * p,
struct bpf_program * fp)Associate a filter to a capture.
pcap_setfilter() is used to specify a filter program. fp is a pointer to a bpf_program struct, usually the result of a call to pcap_compile(). -1 is returned on failure, in which case pcap_geterr() may be used to display the error text; 0 is returned on success.
------解决方案--------------------------------------------------------
应该肯定不是fcode的问题你看看是不是掩码没有设置正确
全部回答
任务占坑
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
月华彩地址好找么,我有些事要过去
一般弹簧的弹劲系数是多少
雷斯林不评论是非.不讨论功过.不说这个人是谁
米东区文化体育局地址有知道的么?有点事想过
匒匌的意思是什么啊?请解释下!
烟叶属于农产品吗?
克孜勒苏柯尔克孜自治州文化体育局地址在哪,
晻藹的意思是什么?晻藹的释义是什么啊?
电动车电池如何保养,正确充电最关键
山地车出行需要准备哪些必备的装备
《桥》这篇课文里,多次出现了关于描写洪水大
阿合奇县文化体育广播电视局地址在哪,我要去
谛味的意思是什么啊?请解释下!
求楼上黄昏的所有小说,完整版加番外~~谢~~
慈溫的意思是什么?慈溫的释义是什么啊?
推荐资讯
退殿的意思是什么啊?请解释下!
菲童衣般我想知道这个在什么地方
森马的衣服胖人能穿吗
祥事的意思是什么?祥事的释义是什么啊?
用平安信用卡在淘宝买东西分期付款要利息吗
什么是PS里的软笔?
从杭州用顺风快递到柳市要多久?多少钱?(是
mk链条包该找哪个代购?
每天给你发一个晚安
发乔的意思是什么啊?请解释下!
美国建筑电气规范最新下载
青春南里社区居委会办公地址在什么地方,我要
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?