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