QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1036|回复: 0

【求助】急!linux新手向大家求教 先谢了!

[复制链接]
发表于 2005-4-17 13:06:07 | 显示全部楼层 |阅读模式
--------------------------------------------------------------------------------

我最近在做毕业设计,题目是基于netfilter的ip包过滤,我先写了如下一个简单的内核模块,完成的功能是丢弃所有接受到的icmp包,但是一编译就出现很多行错误,我看不懂错在哪里,所以发帖子求助,请帮我看看好吗?程序不长,不会占用你太多时间的。谢谢了!

我用 gcc -c 文件名 编译的。

#ifndef __KERNEL__
#define __KERNEL__
#endif

#ifndef MODULE
#define MODULE
#endif

#include "linux/module.h"
#include "linux/kernel.h"
#include "linux/init.h"
#include "linux/types.h"
#include "linux/netdevice.h"
#include "linux/skbuff.h"
#include "linux/netfilter_ipv4.h"
#include "linux/inet.h"
#include "linux/in.h"
#include "linux/ip.h"
#include "asm/semaphore.h"
#include "linux/netfilter.h"


static unsigned int dropicmp(unsigned int hook,
struct sk_buff **pskb,
const struct net_device *in,
const struct net_device *out,
int (*okfn)(struct sk_buff *))
{
struct iphdr *iph = (*pskb)->nh.iph;
if(iph->protocol == IPPROTO_ICMP)
{
printk("Drop ICMP Packet!\n");
return NF_DROP;
}

else return NF_ACCEPT;
}

static struct nf_hook_ops myhook
= {{NULL ,NULL},dropicmp, PF_INET,NF_IP_PRE_ROUTING,NF_IP_PRI_FILTER-1};

static int init_module(void)
{

return nf_register_hook(&myhook);
}

static void cleanup_module(void)
{
nf_unregister_hook(&myhook);
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-6-29 08:09 , Processed in 0.056192 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表