我无法从服务器日志中混乱的其他数据中获取我网站的服务器日志中的 IP 地址。在打开 Excel 之前,我知道有一种方法可以做到这一点,因为我发现了与我想要的相反的东西,即从 AWS 中删除 IP:
cat web.log | awk '{$1=$2=$3=""}1' > web-no-ip.log
对于这种事情的逐步说明或备忘单将会非常棒。
答案1
我假设 IP 地址的典型格式为X.X.X.X
[ 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 地址。
如果您希望日志仅包含如下所示的有效 IP 地址X.X.X.X
,并且我们可以假设X
不会无效,则您可以使用更简单的表达式:
grep -oP '\d{1,3}(\.\d{1,3}){3}' filename.txt