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

如何使用Log Insight Query提取X-Forwarded-For中的首个IP地址?

解决Log Insight提取X-Forwarded-For首个IP的问题

当前查询语句会把X-Forwarded-For后的所有IP串完整提取,要只获取首个IP,可通过以下几种方式修改查询:

方法1:正则解析精准匹配首个IP

利用正则直接匹配符合IP格式的首个内容,适配单个或多个IP的场景:

fields @timestamp, @message
| filter @message like /Endpoint request body after transformations/
| parse @message /X-Forwarded-For":"([\d\.]+)/ as @IP
| stats count(*) by @IP
| limit 20

正则([\d\.]+)会匹配第一个由数字和点组成的IP段,直接提取首个IP。

方法2:拆分IP列表后取首个元素

先提取完整IP串,再拆分列表取第一个元素,兼容性更强:

fields @timestamp, @message
| filter @message like /Endpoint request body after transformations/
| parse @message "X-Forwarded-For\":\"*\"" as @IPList
| split @IPList by ", " into @IPArray
| @IP = @IPArray[0]
| stats count(*) by @IP
| limit 20

split指令将IP串按, 分割成数组,再通过索引[0]获取第一个元素。

方法3:匹配到首个逗号前的内容

如果日志中X-Forwarded-For必然包含多个IP,可直接匹配到第一个逗号前的内容:

fields @timestamp, @message
| filter @message like /Endpoint request body after transformations/
| parse @message "X-Forwarded-For\":\"*, " as @IP
| stats count(*) by @IP
| limit 20

注意:此方法不适用于仅含单个IP的日志条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:40:35