没有合适的资源?快使用搜索试试~ 我知道了~
pf_ring捕包代码,支持两种过滤方式
资源推荐
资源详情
资源评论
pf_ring DNA模式介绍
PF_RING是支持BPF过滤器的,这个在PF_RING的UserGuide中也有相应的函数原型说明。
当编译创建配置的时候,也可以关闭BPF的支持。
./userland/lib/configure --disable-bpf
默认是支持开启BPF过滤器的,在./userland/lib/pfring_mod.c源码中,会有一个宏定义:
#ifdef ENABLE_BPF
#include <pcap/pcap.h>
#include <pcap/bpf.h>
#include <linux/filter.h>
#endif
所以默认没有关闭BPF支持的情况下gcc编译时需要加入pcap的动态库。
PF_RING自己也有过滤器,确实功能比较少,习惯了pcap的过滤器书写,当然能使用它的过滤器是再好不过了。代码中使用了PF_RING过滤器方式和BPF过滤器方式,用gcc编译时加"-D PRINT_ARG"则捕捉arp包,否则捕捉tcp包(其中排除了ssh和samba)
#include <stdio.h>
#include <stdlib.h>
#include <pfring.h>
#include <string.h>
#include <errno.h>
#include <netinet/in.h>
PF_RING是支持BPF过滤器的,这个在PF_RING的UserGuide中也有相应的函数原型说明。
当编译创建配置的时候,也可以关闭BPF的支持。
./userland/lib/configure --disable-bpf
默认是支持开启BPF过滤器的,在./userland/lib/pfring_mod.c源码中,会有一个宏定义:
#ifdef ENABLE_BPF
#include <pcap/pcap.h>
#include <pcap/bpf.h>
#include <linux/filter.h>
#endif
所以默认没有关闭BPF支持的情况下gcc编译时需要加入pcap的动态库。
PF_RING自己也有过滤器,确实功能比较少,习惯了pcap的过滤器书写,当然能使用它的过滤器是再好不过了。代码中使用了PF_RING过滤器方式和BPF过滤器方式,用gcc编译时加"-D PRINT_ARG"则捕捉arp包,否则捕捉tcp包(其中排除了ssh和samba)
#include <stdio.h>
#include <stdlib.h>
#include <pfring.h>
#include <string.h>
#include <errno.h>
#include <netinet/in.h>
#include <linux/if_ether.h>
#include <linux/ip.h>
#include <linux/tcp.h>
#define SNAP_LEN 1518
#define MIN_LEN (sizeof(struct ethhdr) + sizeof(struct iphdr) \
+ sizeof(struct tcphdr))
int main(int argc, char *argv[]) {
剩余7页未读,继续阅读
资源评论
lyb10944
- 粉丝: 3
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功