当前位置: 技术问答>linux和unix
关于用Libpcap过滤报文
来源: 互联网 发布时间:2017-03-11
本文导语: 最近在研究libpcap,我想用libpcap捕获goose报文进行分析。 看了好多例子,都是在pcap_compile()中设置过滤条件,比如想捕获udp就设成pcap_compile(device,&fpo,"udp",1,netmask) 如果想捕获tcp,就设成pcap_compile(device,&fpo,"tcp",1...
最近在研究libpcap,我想用libpcap捕获goose报文进行分析。
看了好多例子,都是在pcap_compile()中设置过滤条件,比如想捕获udp就设成pcap_compile(device,&fpo,"udp",1,netmask)
如果想捕获tcp,就设成pcap_compile(device,&fpo,"tcp",1,netmask)。
但是我想捕获goose报文,把tcp改成goose之后,函数会返回错误,是不是函数没有goose支持。
这是我的其中一个想法,另一个想法就是:先不设置过滤条件,而是捕获所有的包,在callback函数里面在进行帧的判断过滤。这两种方法哪个比较好,从处理速度来考虑的话?
看了好多例子,都是在pcap_compile()中设置过滤条件,比如想捕获udp就设成pcap_compile(device,&fpo,"udp",1,netmask)
如果想捕获tcp,就设成pcap_compile(device,&fpo,"tcp",1,netmask)。
但是我想捕获goose报文,把tcp改成goose之后,函数会返回错误,是不是函数没有goose支持。
这是我的其中一个想法,另一个想法就是:先不设置过滤条件,而是捕获所有的包,在callback函数里面在进行帧的判断过滤。这两种方法哪个比较好,从处理速度来考虑的话?
|
第一个想法不算想法, 不支持就换办法.
第二个想法是理所应当的, 我不清楚goose是什么, 但不论如何, 你都有能力捕获任何链路层的任何包, 并自己分析其内容.
第二个想法是理所应当的, 我不清楚goose是什么, 但不论如何, 你都有能力捕获任何链路层的任何包, 并自己分析其内容.