当前位置: 首页 > article >正文

腾讯云日志服务根据网段过滤非法数据

这个 SQL 语句使用了正则表达式和 regexp_replace 函数来对 client_ip 进行处理,并统计处理后的 IP 地址出现的次数。具体解释如下:

SQL 语句结构

select 
    regexp_replace(client_ip, '^((\d+?\.){3})\d+$', '$10/24') as ips, 
    count(1) as num 
from table_name 
where http_code = 403 
group by ips 
having num > 8000 
order by num desc 
limit 10000;
•	regexp_replace(client_ip, '^((\d+?\.){3})\d+$', '$10/24'):
•	这个函数使用正则表达式将 IP 地址的最后一部分替换为 /24 网络段。
•	'^((\d+?\.){3})\d+$':
•	^: 表示从字符串的开头开始匹配。
•	(\d+?\.){3}: 匹配 IP 地址前三段的数字和点。\d+? 表示匹配一个或多个数字,\. 表示匹配点符号,这个部分匹配三次。
•	\d+: 匹配 IP 地址的最后一段数字。
•	$: 表示匹配字符串结尾。
•	'$10/24':
•	$1: 表示匹配到的前三段 IP 地址,例如 192.168.0.。
•	0/24: 将 IP 的最后一段数字替换为 0/24,代表对应的网络段。
•	整个操作会将 IP 地址 192.168.1.15 转换为 192.168.1.0/24。
•	count(1) as num: 统计相同处理后 IP 出现的次数。
•	from table_name: 假设的表名是 table_name,从该表中查询数据。
•	where http_code = 403: 只选择 HTTP 响应码为 403 的记录(即禁止访问的请求)。
•	group by ips: 根据处理后的 ips 进行分组,以统计每个网络段的请求次数。
•	having num > 8000: 过滤出请求次数超过 8000 次的网络段。
•	order by num desc: 按照请求次数从多到少排序。
•	limit 10000: 最多返回 10000 条记录。

详细解释

•	这个 SQL 查询的目标是识别出请求频繁出现 HTTP 403 禁止访问 的 IP 段。
•	通过 regexp_replace 函数,将 client_ip 的最后一段数字替换成 0/24,将同一网络段的 IP 归为同一类。
•	然后,使用 count(1) 统计每个 /24 子网的请求次数。
•	最后,通过 having num > 8000 过滤出请求次数超过 8000 次的 IP 段,并按次数降序排列,返回最多 10000 个结果。

正则表达式解释

•	'^((\d+?\.){3})\d+$':
•	^: 匹配字符串的开头。
•	(\d+?\.){3}: 匹配 IP 地址前三段的形式,例如 192.168.0.,\d+? 表示匹配一个或多个数字,\. 表示匹配点符号。{3} 表示前三段匹配三次。
•	\d+: 匹配最后一段的数字。
•	$: 表示匹配字符串的结尾。
•	'$10/24':
•	$1: 引用正则表达式中的捕获组 ((\d+?\.){3}),也就是前三段的 IP 地址部分。
•	0/24: 将最后一段替换为 0/24,表示网络段。

总结

这段 SQL 代码的作用是找到出现 HTTP 403 错误并且请求次数特别多的 IP 网络段(按 /24 子网计算),这可能用于分析可能的恶意流量或访问控制的异常行为。


http://www.kler.cn/a/470171.html

相关文章:

  • C4D2025 win版本安装完无法打开,提示请将你的maxon App更新至最新版本,如何解决
  • 源代码编译安装X11及相关库、vim,配置vim(3)
  • LQ quarter 5th
  • Backend - EF Core(C# 操作数据库 DB)
  • 倾斜摄影相机在不动产确权登记和权籍调查中的应用
  • 周记-Repeater中的children和item区别
  • Elasticsearch:基础概念
  • 13、Ollama OCR
  • MATLAB算法实战应用案例精讲-【数模应用】马尔科夫链(附python和R语言代码实现)
  • 机器学习实战——支持向量机(SVM)
  • Babylon.js中的向量操作:BABYLON.Vector3的数学方法
  • java-type-tool 轻量级java type工具类库
  • 第二十六天 RNN在NLP中的应用
  • 分布式多机多卡训练全景指南:MPI、DeepSpeed 与 Colossal-AI 深度解析
  • 密码学科普
  • USB 驱动开发 --- Gadget 驱动框架梳理
  • 系统编程(指针,内存基础)
  • 深入解析希尔排序:原理、实现与优化
  • web系统漏洞攻击靶场
  • 力扣-数据结构-11【算法学习day.82】
  • ros2笔记-2.5.3 多线程与回调函数
  • Vue 项目自动化部署:Coding + Jenkins + Nginx 实践分享
  • 掌握销售‘先机’,HubSpot邮件跟踪软件让销售更智能
  • 激活城市数字化文化产业“新质生产力”,虚拟数字人化身城市代言人
  • 【机器学习】机器学习的基本分类-自监督学习-变换预测(Transformation Prediction)
  • RedisTemplate执行lua脚本及Lua 脚本语言详解