1 votes

Comment puis-je obtenir UNIQUEMENT les adresses IP des journaux de mon serveur Apache AWStats ?

J'ai du mal à extraire les adresses IP du journal du serveur de mon site au milieu du fouillis d'autres données dans un journal de serveur. Avant d'ouvrir Excel, je sais qu'il y a un moyen de le faire car J'ai trouvé l'opposé de ce que je veux, en supprimant les adresses IP de l'AWS :

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

Un pas à pas ou un aide-mémoire pour ce genre de choses serait formidable.

1voto

Andrew M. Points 10852

Je suppose que les adresses IP sont dans le format typique de X.X.X.X donde X est comprise entre [0,255]. Sachant cela, grep peut faire le travail de manière tout à fait admirable :

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]) correspondra à tout nombre compris entre 0 et 255, y compris les zéros de tête - par exemple, 0, 255, 019, etc. Tel qu'il est écrit, cependant, il correspondra à des choses comme 1.1.1.1.5 (cinq octets). Cela ne permet pas non plus de suivre les adresses IPV6.

Si vous vous attendez à ce que les journaux contiennent UNIQUEMENT les adresses IP valides qui ressemblent à X.X.X.X et on peut supposer que X ne sera pas invalide, vous pouvez utiliser une expression beaucoup plus simple :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X