Apache-2.2
如何從我的 Apache AWStats 伺服器日誌中僅獲取 IP 地址?
在伺服器日誌中其他數據混亂的情況下,我無法從我的站點伺服器日誌中獲取我的 IP 地址。在我破解打開 Excel 之前,我知道有辦法做到這一點,因為我發現與我想要的相反,從 AWS 中刪除 IP :
cat web.log | awk '{$1=$2=$3=""}1' > web-no-ip.log
這種事情的一步一步或備忘單將是驚人的。
我假設 IP 地址的典型格式是
X.X.X.X
whereX
is between$$ 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