J'ai plusieurs fichiers journaux qui contiennent un tas d'adresses IP. Je serais ravi de pouvoir diriger les données via un programme qui correspondrait et résoudrait les adresses IP.
IE cat / var / log / somelogfile | hôte
qui tournerait une ligne comme
10:45 consulté par 10.13.13.10
dans
10:45 accessible par myhostname.intranet
Je pense qu'il pourrait y avoir un moyen de le faire avec une combinaison de sed et host, mais je ne sais pas comment le faire. Je sais que je pourrais écrire un script simple qui le ferait, mais je préférerais pouvoir utiliser des outils intégrés si possible. Aucune suggestion?
command-line
sed
pipe
hostname
Daniel
la source
la source
Réponses:
Voici une solution rapide et sale à cela en Python. Il fait de la mise en cache (y compris la mise en cache négative), mais pas de thread et ce n'est pas la chose la plus rapide que vous ayez vue. Si vous l'enregistrez comme quelque chose comme
rdns
, vous pouvez l'appeler comme ceci:L'exécuter annotera les adresses IP avec leurs enregistrements PTR en place:
Et voici la source:
Veuillez noter: ce n'est pas tout à fait ce que vous recherchez à la lettre (en utilisant des «outils standard»). Mais cela vous aide probablement plus qu'un hack qui résout chaque adresse IP à chaque fois qu'elle est rencontrée. Avec quelques lignes supplémentaires, vous pouvez même lui faire mettre en cache ses résultats de manière persistante, ce qui aiderait à répéter les appels.
la source
J'utiliserais
jdresolve -n -a
Emballé pour debian, etc. également disponible sur:
https://github.com/jdrowell/jdresolve
Je l'utilise depuis plus d'une décennie pour résoudre les journaux Apache, les journaux Squid et toute autre chose avec beaucoup d'adresses IP qui doivent être résolues. Il fonctionne bien, de manière fiable et rapide, et il peut mettre en cache les recherches des exécutions précédentes.
la source
un script bash dans lequel vous pouvez ajouter votre fichier journal et votre pipe.
la sortie ressemble à:
la source
Un rapide perl:
la source
Si le format du journal affiche toujours la même chose que vous le montrez ci-dessus, vous pouvez le faire vraiment sale avec
echo 10:45 accessed by 10.13.13.10|awk '{print $4}'|nslookup
la source