我如何才能从我的Apache AWStats服务器日志获得IP地址?

我无法从服务器日志中的其他数据混乱中将我的站点服务器的IP地址注销。 在我打开Excel之前,我知道有一种方法可以做到这一点,因为我发现与我想要的相反,从AWS中删除IP:

cat web.log | awk '{$1=$2=$3=""}1' > web-no-ip.log 

一步一步或作弊这种事情将是惊人的。

我假设IP地址是XXXX的典型格式,其中X在[0,255]之间。 知道这个,grep可以做得非常好:

 grep -oP '(0|[01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])(\.(0|[01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){3}' filename.txt 

(0|[01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])将匹配0到255之间的任何数字,例如,0,255,019等。然而,正如所写的,它将匹配1.1.1.1.5 (五个八位字节)之类的东西。 这也不跟踪IPV6地址。

如果您希望日志只包含看起来像XXXX有效IP地址,并且我们可以假设X不会失效,则可以使用更简单的expression式:

 grep -oP '\d{1,3}(\.\d{1,3}){3}' filename.txt