sed提取日志中的IP地址

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: sed提取日志中的IP地址

在Linux环境中,sed 命令可以用来处理文本流并根据模式进行替换或者提取特定内容,因此它常被用于从日志文件中提取IP地址。以下是一个基本示例,假设日志文件中IP地址是以标准点分十进制形式出现的,并且独立成词或字段:

sed -nE 's/([0-9]{1,3}\.){3}[0-9]{1,3}/\1/p' logfile

这条命令解释如下:

  • -n 表示不打印每一行,默认情况下 sed 会打印所有行,这里我们只打印匹配到IP地址的行。
  • -E-r(取决于你的sed版本)启用扩展正则表达式,使得模式更易读。
  • s/search/replace/p 是替换模式,这里的 search 部分定义了IP地址的正则表达式:([0-9]{1,3}\.){3}[0-9]{1,3},表示由三个.分隔的四个0-255之间的数字段。
  • \1 在替换部分用到了反向引用,由于正则表达式中有括号,所以\1代表整个IP地址匹配的内容。
  • /p 表示打印那些替换发生过的行。

如果日志文件中的IP地址周围有其他文字,可能需要进一步细化正则表达式以确保准确匹配。例如,如果IP地址总是出现在 "inet addr:" 后面,可以这样做:

sed -nE '/inet addr:/ s/.*inet addr:(([0-9]{1,3}\.){3}[0-9]{1,3}).*/\1/p' logfile

这个命令首先查找包含 "inet addr:" 的行,然后提取紧跟其后的IP地址。

然而,对于日志文件,有时使用 grep 结合 awk 可能会更加方便和直观:

grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' logfile

这条命令会直接输出日志文件中所有的IP地址,不需要考虑上下文,只要符合IP地址格式就会被提取出来。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
Linux 网络安全 数据库
CentOS7开启Firewalld防火墙日志记录获取被拦截的IP
CentOS7开启Firewalld防火墙日志记录获取被拦截的IP
1838 0
CentOS7开启Firewalld防火墙日志记录获取被拦截的IP
|
4月前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
4月前
|
网络安全
【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024-03-26 实验结果失败]
【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024-03-26 实验结果失败]
|
5月前
|
运维 关系型数据库 Serverless
函数计算产品使用问题之如何在日志中打印出你本地机器的IP地址
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
7月前
|
域名解析 网络协议 应用服务中间件
nginx-ingress通过ipv6暴露服务,并在nginx ingress日志中记录客户端真实ipv6的ip地址
本文主要通过阿里云提供的clb和nlb来实现,建议是提前创建好双栈的vpc和vsw(使用clb可以不用双栈vpc和vsw)
678 1
|
7月前
|
XML 存储 Java
百度搜索:蓝易云【springboot增加logback日志记录ip详解】
通过以上步骤,您可以在Spring Boot应用程序中使用Logback记录客户端的IP地址。请根据实际需求和日志记录规则进行适当调整和配置。
107 0
|
应用服务中间件 定位技术 网络安全
Nginx访问日志接入GrayLog4.2.5并通过GeoIP展现访问者IP的地理位置信息
Nginx访问日志接入GrayLog4.2.5并通过GeoIP展现访问者IP的地理位置信息
489 0
Nginx访问日志接入GrayLog4.2.5并通过GeoIP展现访问者IP的地理位置信息
|
Linux
利用pipeline实现GrayLog中用日志源IP地址区分主机
利用pipeline实现GrayLog中用日志源IP地址区分主机
318 0
利用pipeline实现GrayLog中用日志源IP地址区分主机
|
Shell Perl
获取slb日志里ip地址的shell脚本
获取slb日志里ip地址的shell脚本
92 1
|
网络协议 Shell Perl
根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁
根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁
110 1