You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用grep从UFW防火墙日志中提取SRC对应的IPv6地址

正确命令

方案1:使用grep Perl正则直接提取(最简写法)

grep -oP '(?<=SRC=)[0-9a-fA-F:.]+' 你的日志文件名

后续接统计直接管道即可(注意uniq需要先排序才能正确统计所有重复项):

grep -oP '(?<=SRC=)[0-9a-fA-F:.]+' 你的日志文件名 | sort | uniq -c

方案2:兼容普通grep的写法(无需Perl正则支持)

grep -o 'SRC=[0-9a-fA-F:.]*' 你的日志文件名 | cut -d '=' -f 2

之前命令错误原因

  1. ^SRC强制匹配行首的SRC,UFW日志中SRC字段不一定在行首,适用范围极窄
  2. 引号位置错误,等于号放在单引号外会被shell提前解析,没有传入grep作为匹配规则
  3. 匹配范围[1-9:]漏掉了0、a-f这些IPv6地址允许的十六进制字符,无法匹配合法地址

参数说明

  • -o:只输出每行中匹配到的内容,不输出整行日志
  • -P:启用Perl兼容正则,支持零宽断言语法
  • (?<=SRC=):正向后顾断言,只匹配SRC=字符串之后的内容,不会把SRC=本身计入输出结果
  • [0-9a-fA-F:.]+:匹配IPv6地址允许的所有合法字符,包含大小写十六进制数、地址分隔冒号、压缩用连续冒号

内容的提问来源于stack exchange,提问作者Ockham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:39:03