Rechercher une IP dans une Log
Résolu
gunbol
Messages postés
52
Statut
Membre
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 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
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
Configuration: Windows XP Internet Explorer 6.0
10 réponses
-
Salut,
Récupérer une adresse IP
-
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 -
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 -
Non je pense pas que tu pourras faire plus simple :p
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
Et l'option -o de grep ?-o, --only-matching N'afficher que la partie d'une ligne qui correspond au MOTIF.
--
106485010510997108 -
Je dis : bingo lami20j. Je propose un bon vieux :
egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" pouet.txt
Bonne chance -
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 -
Salut,
Je pourrai te donner une solution Perl. -
Essaye en remplaçant egrep -o par grep -oE.
-
Re,
perl -ne 'print $1 if /((?=\d{1,3}\.){3}\d{1,3})/g' fichier.txt
Je n'ai pas testé ;-)