Rechercher une IP dans une Log

Résolu
gunbol Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,

j'ai un fichier de log (listener oracle) qui contient des adresses IP. Je souhaiterais lister toutes les adresses IP et uniquement les adresses IP contenues dans ce fichier Log.

J'ai essayé en Awk, mais les adresses IP peuvent s'écrire à plusieurs endroits dans une même ligne.

Comment on fait avec une expression régulière du genre [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} pour lister que les adresses IP.

Merci d'avance pour votre aide.

Cordialement,

Gunther
A voir également:

10 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Récupérer une adresse IP
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Il faut juste faire un grep (pour virer toutes les lignes sans IP) et un sed avec les options /ng (pour traiter les lignes comprenant plusieurs IP de sorte à les répartir sur différentes lignes (changer une IP en une IP suivi d'un passage à la ligne). Enfin avec un autre sed, tu peux virer tout ce qui est autour de chaque IP dans une ligne. Je te laisse chercher je n'ai pas trop le temps dans l'immédiat.

Bonne chance
0
gunbol Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   4
 
Hello,

Merci pour l'info, je voulais éviter de passer par l'étape sed, en me disant (ou en espérant) qu'il y ait une commande magique, genre match qui fasse l'affaire.

@+

Gunther
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Non je pense pas que tu pourras faire plus simple :p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Et l'option -o de grep ?
-o, --only-matching 
N'afficher que la partie d'une ligne qui correspond au MOTIF. 
--
106485010510997108
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Je dis : bingo lami20j. Je propose un bon vieux :
egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" pouet.txt

Bonne chance
0
gunbol Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   4
 
Tout d'abord, merci à tous pour vos réponses.

Toutefois, je suis sur un Solaris 9, et /usr/xpg4/bin/egrep ne connait pas l'option -o.

Si vous avez d'autres idées, je prends aussi ;)

@+

Gunther
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Je pourrai te donner une solution Perl.
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Essaye en remplaçant egrep -o par grep -oE.
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,
perl -ne 'print $1 if /((?=\d{1,3}\.){3}\d{1,3})/g' fichier.txt

Je n'ai pas testé ;-)
0