Linux驱动4_NETFILTER

简介:
#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>
//  hook函数
static unsigned int hook_func(unsigned int hooknum, struct sk_buff * skb, const struct net_device *in, 
    const struct net_device *out, int (*okfn) (struct sk_buff *))  
{
  unsigned int ret = NF_ACCEPT;
  if(!skb)
  {
    printk(KERN_ALERT "hook_func null skb.\n");
    goto err_null_skb;
  }
  printk(KERN_ALERT "hook_func get a skb.\n");
  return ret;
err_null_skb:
  return ret;
}  

struct nf_hook_ops hook_ops = {  
  .list =  {NULL,NULL},
  .hook = hook_func,
  //hook的协议族
  .pf = PF_INET,
  //接收到的包,路由之前的hook点  
  .hooknum = NF_INET_PRE_ROUTING,  
  .priority = NF_IP_PRI_FILTER
 };  
  
static int __init hook_init(void) 
{
  nf_register_hook(&hook_ops);  
  return 0;  
}  
  
static void __exit hook_exit(void) 
{  
  nf_unregister_hook(&hook_ops); 
}  
 
 MODULE_LICENSE("GPL");  
 module_init(hook_init);  
 module_exit(hook_exit);  

目录
相关文章
|
3月前
|
Java Linux API
Linux设备驱动开发详解2
Linux设备驱动开发详解
43 6
|
3月前
|
消息中间件 算法 Unix
Linux设备驱动开发详解1
Linux设备驱动开发详解
47 5
|
3月前
|
Ubuntu NoSQL Linux
Linux内核和驱动
Linux内核和驱动
26 2
|
3月前
|
数据采集 Linux
Linux源码阅读笔记20-PCI设备驱动详解
Linux源码阅读笔记20-PCI设备驱动详解
|
4月前
|
存储 JSON Linux
|
4月前
|
Oracle 关系型数据库 Linux
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
通过这一连串的步骤,可以专业且有效地在Linux下为Qt编译Oracle驱动库 `libqsqloci.so`,使得Qt应用能够通过OCI与Oracle数据库进行交互。这些步骤适用于具备一定Linux和Qt经验的开发者,并且能够为需要使用Qt开发数据库应用的专业人士提供指导。
139 1
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
|
2月前
|
Linux API
Linux里的高精度时间计时器(HPET)驱动 【ChatGPT】
Linux里的高精度时间计时器(HPET)驱动 【ChatGPT】
|
3月前
|
Linux
【linux】【驱动】<specifier>-map-pass-thru讲解
【linux】【驱动】<specifier>-map-pass-thru讲解
20 0
|
3月前
|
Linux
【linux】【驱动】phy接口类型
【linux】【驱动】phy接口类型
19 0
|
4月前
|
缓存 网络协议 算法
【Linux系统编程】深入剖析:四大IO模型机制与应用(阻塞、非阻塞、多路复用、信号驱动IO 全解读)
在Linux环境下,主要存在四种IO模型,它们分别是阻塞IO(Blocking IO)、非阻塞IO(Non-blocking IO)、IO多路复用(I/O Multiplexing)和异步IO(Asynchronous IO)。下面我将逐一介绍这些模型的定义:
185 1