Hello,
Je cherche un moyen d'extraire d'une capture de mon trafic DNS certains sites et d'en afficher le nombre d’occurrence.
Le fichier que je récupère est sous ce format :
14:15:37.837411 IP 109.215.228.235.23582 > 81.253.149.2.53: 25335+ A? b.fc.namequery.com. (36)
14:15:37.837930 IP 80.10.202.65.30568 > 209.53.113.4.53: 59709 [1au] A? b.fc.namequery.com. (47)
14:15:44.746399 IP 109.215.90.49.1024 > 81.253.149.2.53: 7376+ A? search.namequery.com. (38)
14:15:49.456342 IP 82.121.161.41.1024 > 81.253.149.1.53: 26292+ A? search.namequery.com. (38)
14:15:49.456865 IP 80.10.202.103.3499 > 209.53.113.6.53: 27871 [1au] A? search.namequery.com. (49)
14:15:53.477188 IP 90.21.150.38.1024 > 81.253.149.6.53: 30830+ A? search.namequery.com. (38)
Je souhaiterai donc avoir en final :
b.fc.namequery.com. 2
search.namequery.com. 4
xxx.search.namequery.com. 42
etc…
Je suppose que je dois utiliser |sort|uniq -c pour le nombre d’occurrence et les additionner ?
Mais pour isoler seulement le FQDN, je ne sais pas trop quoi utiliser sed, awk ou autre ?
Merci d'avance pour votre aide
Cordialement,
# awk
Posté par SamG . Évalué à 3.
Bonjour,
awk est ton ami:
awk '{a[$(NF-1)]++} END{for (i in a) print i,a[i]}' fichier.txt | sort -k 2 -n
Cordialement
[^] # Re: awk
Posté par totof2000 . Évalué à 3. Dernière modification le 04 juin 2014 à 12:52.
Pourquoi le sort ? Et pourquoi $NF-1 ? As-tu testé ?
Ah, ça y est, je crois avoir compris le problème : dans mon fichier, je n'ai pas les valeurs entre ().
Question pour le PI : Doit-on additionner les valeurs entre parenthèses ?
[^] # Re: awk
Posté par SamG . Évalué à 4. Dernière modification le 04 juin 2014 à 12:59.
NF-1 car effectivement le DNS est dans l'avant dernier champs.
Le sort, car son résultat était trié sur le nombre d’occurrence.
Et il ne faut pas additionner, car sinon le résultat pour b.fc.namequery.com devrait être 36+47 et non 2
et oui, j'ai testé sur son exemple :-)
# Tu peux tout faire avec awk.
Posté par totof2000 . Évalué à 5. Dernière modification le 04 juin 2014 à 12:53.
# Vite fait
Posté par Flyounet (site web personnel) . Évalué à 2.
Ça devrait le faire…
awk '! /^[[:space:]]*$/ {print $(NF-1)}' ton_fichier | sort -f |uniq -c
# Merci
Posté par bobmoutarde . Évalué à 2.
Merci bien messieurs, c'est exactement ce qu'il me fallait.
Toujours un plaisir de venir ici :)
Have a nice day
# cut et sort, uniq
Posté par NeoX . Évalué à 4.
cut -d '?' -f2
pour recuperer la 2e partie apres le '?'
| sort -k 1
pour trier sur la premiere colonne (le FQDN)
| cut -d' ' -f1
pour ne recuperer que le FQDN
| uniq -c
pour les compter
| awk '{print $2" "$1}'
pour inverser le FQDN et le total (uniq met le total à gauche)
[^] # Re: cut et sort, uniq
Posté par totof2000 . Évalué à -2.
C'est moche !!!
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.