免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1172 | 回复: 0
打印 上一主题 下一主题

linux2.6下钩子函数的编写 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-15 16:08 |只看该作者 |倒序浏览

#include linux/init.h>
#include linux/kernel.h>
#include linux/module.h>
#include linux/skbuff.h>
#include linux/netdevice.h>
#include linux/ip.h>
#include linux/tcp.h>
#include linux/udp.h>
#include linux/netfilter_ipv4.h>
#include linux/netfilter.h>
MODULE_LICENSE("lxg BSD/GPL");
static unsigned int
example(unsigned int hooknum,struct sk_buff **skb,const struct net_device *in,const struct net_device *out,int (*okfn)(struct sk_buff*))
{
    struct iphdr *iph;
    struct tcphdr *tcph;
    struct udphdr *udph;
    __u32 sip;
    __u32 dip;
    __u16 sport;
    __u16 dport;
    iph=(*skb)->nh.iph;
    sip=iph->saddr;
    dip=iph->daddr;
  
                printk(KERN_EMERG"%d.%d.%d.%d to %d.%d.%d.%d land\n",NIPQUAD(sip),NIPQUAD(dip));
            return NF_DROP;
        }
static struct nf_hook_ops iplimitfilter={
    .hook =example,
    .owner=THIS_MODULE,
    .pf=    PF_INET,
    .hooknum=NF_IP_LOCAL_IN,
    .priority=NF_IP_PRI_FILTER-1,};
static void test_init(void)
{
     nf_register_hook(&iplimitfilter);
}
static void test_exit(void)
{
    nf_unregister_hook(&iplimitfilter);
}
module_init(test_init);
module_exit(test_exit);


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/74326/showart_1798425.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP