用于DNS的Splunk(perl)REGEX

时间:2012-03-02 00:43:23

标签: regex splunk

我正在尝试创建一个正则表达式来为splunk中的DNS quires提取CNAME。我可以获得第一个DNS名称(&#34之后的所有内容;&#34的CNAME记录;以及之前(" ="),但是我找不到一个表达式来获取下一个DNS名称等于。

Mar  1 09:16:43 123.dns.local Mar  1 09:16:43 dns-01-1 SDNS: -> Answer: CNAME-record for dl.wu.ms.edgesuite.net = a26.ms.akamai.net
Mar  1 09:16:43 123.dns.local Mar  1 09:16:43 dns-01-1 SDNS: -> Answer: CNAME-record for dom.dl.wu.akadns.net = dl.wu.ms.edgesuite.net
Mar  1 09:16:43 123.dns.local Mar  1 09:16:43 dns-01-1 SDNS: -> Answer: CNAME-record for main.dl.wu.akadns.net = dom.dl.wu.akadns.net
Mar  1 09:16:43 123.dns.local Mar  1 09:16:43 dns-01-1 SDNS: -> Answer: CNAME-record for download.windowsupdate.nsatc.net = main.dl.wu.akadns.net
Mar  1 09:16:43 123.dns.local Mar  1 09:16:43 dns-01-1 SDNS: -> Answer: CNAME-record for download.windowsupdate.com = download.windowsupdate.nsatc.net
Mar  1 09:16:43 123.dns.local Mar  1 09:16:43 dns-01-1 SDNS: -> Answer: CNAME-record for dl.wu.ms.edgesuite.net = a26.ms.akamai.net

2 个答案:

答案 0 :(得分:1)

使用数据中的=和字符串结尾锚点添加所需的结构:

/CNAME-record\sfor\s(.*?)\s*=\s*(.*)$/

答案 1 :(得分:0)

如果在第二个DNS之后有一些信息,请使用以下信息:

/CNAME-record\sfor\s(\S+)\s*=\s*(\S+)/

其中\S+表示一个或多个非空格字符。