通常我们只对特定网络通信感兴趣。比如我们只打算监听Telnet服务(port
函数原型:
p:表示pcap会话句柄;
fp:存放编译以后的规则;
str:规则表达式格式的过滤规则(filter),同tcpdump中的filter;
optimize:制定优化选项:0
netmask:监听接口的网络掩码;
返回值:-1表示操作失败,其他值表成功。
int
示例代码:
#include
上面的代码设备rl0上以混杂模式监听所有发往或源自端口23的数据包。Pcap_lookupnet()函数返回给定接口的IP地址和子网掩码。
【语法】
wpcap的过滤器是以已声明的谓词语法为基础的。过滤器是一个ASCII字符串,它包含了一个过滤表达式。pcap_compile()把这个表达式编译成内核级的包过滤器。
这个表达式会选择那些数据包将会被堆存。如果表达式没有给出,那么,网络上所有的包都会被内核过滤引擎所认可。不然,只有那些表达式为'true'的包才会被认可。
这个表达式包含了一个或多个原语。原语通常包含了id(名字或序列),这些id优先于限定词。以下是三种不同的限定词:<