EPP是域名注册局与域名注册商之间通信的接口协议,作为像我们这样的大的域名注册商,这个日志的分析,如果不用工具,那就是要命!

这个PowerShell脚本用于把一个EPP通信日志里面,什么时间做了什么事情,做一个分析统计。大家通过这个案例,可以进一步看看怎么从文本文件中抓取出想要的信息来。抓取出来的信息最终被写入了另外一个文件中。

由于EPP协议本身的复杂性,所以处理过程也比较复杂。

$latestTime = '';$latestCmd = '';$latestDomain ='';$file = Get-Content d:\epp-packet.log;$regTime = "^(?<time>\d{8}\s\d{6}).*write\(\)\s:\sSending.*$";$regCmd = "^.*<command><(?<cmd>\w+)>.*>(?<domain>[a-z0-9-\.]+)</domain:name>.*$";foreach($line in $file){    if($line -match $regTime){        $Matches.time; #留在这里,以便了解处理进度        $latestTime = $Matches.time;        continue;    }    if($line -match $regCmd)    {        $latestCmd = $Matches.cmd;        $latestDomain = $Matches.domain;                $xx = "$latestTime`t$latestCmd`t$latestDomain";        $xx | Out-File -FilePath "d:\epp-anaysis.log" -Encoding "default" -Append    }}Write-Host "compelete!";

03-15 18:22