在ubuntu上做netfilter_queue开发
来源:互联网 发布:php 开源 erp 中文 编辑:程序博客网 时间:2024/06/10 00:07
1.环境搭建
1.1 注意:netfilter_queue的依赖是libnfnetlink和libmnl,所以先安装这两个依赖库
1.2 源码下载地址:http://www.netfilter.org/projects/
1.3 编译
configure, make ,make install (注意make install的时候需要sudo)
1.4 检查
在安装完所有库之后,我们可以到/usr/local/include查看这三个库的头文件是否存在
他们的目录分别是"libmnl", "libnetfilter_queue"和"libnfnetlink".
2. 开发
2.1 编码
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <time.h>#include <arpa/inet.h>#include <linux/netfilter.h>#include <linux/netfilter/nfnetlink.h>#include <linux/types.h>#include <linux/netfilter/nfnetlink_queue.h>#include <libnetfilter_queue/libnetfilter_queue.h>int main(void){struct nfq_handle *h;h = nfq_open();if (!h) {fprintf(stderr, "error during nfq_open()\n");exit(1);}printf("unbinding existing nf_queue handler for AF_INET (if any)\n");if (nfq_unbind_pf(h, AF_INET) < 0) {fprintf(stderr, "error during nfq_unbind_pf()\n");exit(1);}printf("binding nfnetlink_queue as nf_queue handler for AF_INET\n");if (nfq_bind_pf(h, AF_INET) < 0) {fprintf(stderr, "error during nfq_bind_pf()\n");exit(1);}printf("close nft queue handle.\n");if (nfq_close(h) < 0) {fprintf(stderr, "error during nfq_close()\n");exit(1);}return 0;}2.2 编译
gcc -o a a.c -lnetfilter_queue
3.结束语
结合源代码进行学习,在思考问题之后多问问人。
- 在ubuntu上做netfilter_queue开发
- 在UBUNTU上做WEB开发
- netfilter_queue
- 在centos6.3上编译netfilter_queue的configure问题及其解决方法
- 在UBUNTU上开发MYSQL
- 用netfilter_queue在用户态实现NAT
- 在Ubuntu中用Netbeans做开发
- 如何在openwrt上做开发
- 在Ubuntu上搭建J2EE开发环境
- 在Ubuntu上iPhone开发教程-1
- 在ubuntu上搭建perl开发环境
- 在ubuntu上搭建android开发环境
- 在ubuntu上部署qt开发环境
- 在ubuntu 上搭建php开发环境
- 在Ubuntu上做内核编程,要安装哪个包?
- 站在巨人的肩膀上做软件开发
- 在linux64bit位上,做Android开发,所用脚本
- 在linux上做移动开发必须知道这五个
- 我的Android之旅——学习、项目、心态
- smb服务器的搭建
- hdu2089 不要62
- data文件夹介绍及文件应用
- IOS lib库依赖设置
- 在ubuntu上做netfilter_queue开发
- 设置Qt编码为utf-8
- iPad、iPhone 界面设计标准
- 2种Global临时表
- 什么是CALayer?
- android开发 多语言和国际化
- FORALL
- 使用iptraf进行实时监控流量
- 定语复合分区表的2种语法