linux 库函数拦截,如何使用net_dev_add()API过滤和拦截Linux数据包?
您正在使您的模块处理所有以太网数据包. Linux将向所有匹配的协议处理程序发送数据包.由于IP已在您的内核中注册,因此您的模块和ip_rcv都将接收所有带有IP头的SKB.
如果不更改内核代码,则无法更改此行为.一种可能性是创建一个netfilter模块.这样,您可以在ip_rcv函数之后拦截数据包,并在需要时删除它(在Netfilters PREROUTING挂钩中).
这是一个小的Netfilter模块,我从我已编写的一些代码中提取.这个模块尚未完成,但主要内容已经到位.
#include
#include
// Handler function
static unsigned int my_handler (
unsigned int hook,struct sk_buff *skb,const struct net_device *in,const struct net_device *out,int (*okfn)(struct sk_buff *))
{
return NF_ACCEPT;
// or
return NF_DROP;
}
// Handler registering struct
static struct nf_hook_ops my_hook __read_mostly = {
.hook = my_handler,.pf = NFPROTO_IPV4,.hooknum = (1 << NF_INET_PRE_ROUTING),.priority = NF_IP_PRI_FIRST // My hook will be run before any other netfilter hook
};
int my_init() {
int err = nf_register_hook (&my_hook);
if (err) {
printk (KERN_ERR "Could not register hook\n");
}
return err;
}
linux 库函数拦截,如何使用net_dev_add()API过滤和拦截Linux数据包?相关推荐
- mysql c api 函数 linux下 mysql_query_Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据...
标签: Title:Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据 --2013-10-11 11:57 #include #include #in ...
- 1、Linux下C语言 编写简单的网络嗅探器: 基本的数据包抓取分析
首先贴上源代码 #include <stdio.h> #include <errno.h> #include <unistd.h> #include <sys ...
- linux netfilter路由表,Linux netfilter 学习笔记 之十四 netfilter模块会修改数据包关联的路由缓存吗...
起因: 最近在完成网关的一个相关功能时,对于网关本身通过socket发送的数据包,没有从正确的wan接口发送出去,但是在udp_sendmsg 函数里打印出来的 信息显示路由查找是正确的,但是当数据包 ...
- tshark筛选、过滤特定ip的数据包
使用-Y "规则",其中规则部分: ip.dst表示目的ip,使用ip.src表示源ip or表示或,and表示与 示例 比如: tshark -Y "ip.src==6 ...
- linux过滤数据包,用Tcpdump过滤数据包
对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过嗅探器来分析原因,找出造成网络阻塞的根源.Tcpdump就是Linux平台下一个以命令行方式运行的网络流量 ...
- Linux网络数据包接收处理过程
因为要对百万.千万.甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化.而很多时候,如果你对Linux底 ...
- linux收发包内核进程名称,Linux内核IP Queue机制的分析(一)——用户态接收数据包...
序 笔者将会通过包括本文在内的三篇文章,对IP Queue机制从用户态的应用到内核态的模块程序设计进行分析.三篇文章的题目分别是: Linux内核IP Queue机制的分析(一)--用户态接收数据包 ...
- linux线程怎样实时性,高效轻型线程怎么提高Linux实时性能?
这些用户空间扩展(有多个)已首先由电信/网络高性能 IP 数据包处理系统进行驱动,以实现所谓的"裸金属"实施,其中,多核设备中的Linux用户空间应用可以模拟"无操作系统 ...
- 一键关闭windows防火墙_Windows防火墙与网络设备拦截软件数据包案例记录!
1.Windows防火墙拦截我们的数据包 Windows防火墙拦截了部分视频会议交互信令或音视频数据包(无论是SIP协议的数据包,还是H323协议的数据包),导致视频会议终端有时无法入会,或者入会后看 ...
最新文章
- [转载] CSS模块化【封装-继承-多态】
- Windows和Linux系统下,虚拟环境安装的全面说明和详细步骤
- 一步一步封装自己的HtmlHelper组件:BootstrapHelper
- 为了简单起见,Arquillian Chameleon
- LeetCode 809. 情感丰富的文字
- maven如何合并两个war到一个war项目中
- C/C++连接MySQL数据库执行查询
- 用Response.Filter生成静态页
- python用户画像_Python爬虫实践之:简书用户画像
- 为什么是深度神经网络而不是宽度神经网络?增加神经网络的深度相比于增加宽度有哪些优点?
- 英雄联盟php文件,英雄联盟-QQ网吧游戏特权-QQ网吧
- lcs问题java_动态规划法(十)最长公共子序列(LCS)问题
- 自学IT和接受IT培训两者的优缺点分析
- maven 打包错误:Please refer to xxx\target\surefire-reports for the individual test results.
- Android版本+pwa,微博pwa版本下载
- 科林明伦杯哈尔滨理工大学第六届程序设计团队赛-Team模拟
- 商店管理系统的设计与实现
- 冬天买什么绒的四件套好用
- 快速实施多账套多组织架构
- THz:随机湍流信道下THz无线LOS链路的性能研究
热门文章
- 搭建Cacti监控系统(一)-- 搭建LNMP 环境
- 06-Windows Server 2012 新特性 ---- Hyper-V实时迁移
- #1045 无法登录 MySQL 服务器 phpmyadmin
- python判断集合为空
- comparator 与comparable之间的关系 注意实现接口comparable<T>时候,T的取值为实现类的类型,眼高手低容易犯迷糊的地方提醒
- 做项目需要使用的工具类
- 《智源社区周刊:预训练模型》第2期:Facebook用“预微调”改进预训练性能、再议GPT-3中的东方主义偏见...
- 智源人工智能伦理与安全中心主任曾毅任联合国教科文组织人工智能伦理特设国际专家组专家...
- 一顿关于心智、机器和智能的哲学大餐!!
- DeepFashion: Powering Robust Clothes Recognition and Retrieval with Rich Annotations – CVPR 2016