Tengo varios archivos de registro que contienen un montón de direcciones IP. Me encantaría poder canalizar los datos a través de un programa que coincidiría y resolvería las direcciones IP.
IE cat / var / log / somelogfile | anfitrión
que convertiría una línea como
10:45 accedido por 10.13.13.10
dentro
10:45 accedido por myhostname.intranet
Mi pensamiento es que podría haber una manera de hacer esto con una combinación de sed y host, pero no tengo idea de cómo hacerlo. Sé que podría escribir un script simple que lo hiciera, pero preferiría poder usar herramientas integradas si es posible. ¿Alguna sugerencia?
command-line
sed
pipe
hostname
Daniel
fuente
fuente
Respuestas:
Aquí hay una solución rápida y sucia para esto en Python. Realiza el almacenamiento en caché (incluido el almacenamiento en caché negativo), pero no el enhebrado y no es lo más rápido que has visto. Si lo guarda como algo así
rdns
, puede llamarlo así:Al ejecutarlo, se anotarán las direcciones IP con sus registros PTR en el lugar:
Y aquí está la fuente:
Tenga en cuenta: esto no es exactamente lo que busca al pie de la letra (usando 'herramientas estándar'). Pero probablemente lo ayude más que un truco que resuelve cada dirección IP cada vez que se encuentra. Con unas pocas líneas más, incluso puede hacer que guarde en caché sus resultados de forma persistente, lo que ayudaría a repetir las invocaciones.
fuente
Yo usaría
jdresolve -n -a
Empaquetado para debian, etc. también disponible en:
https://github.com/jdrowell/jdresolve
Lo he estado usando durante más de una década para resolver registros de apache, registros de calamar y cualquier otra cosa con muchas direcciones IP que deben resolverse. Funciona bien, de manera confiable y rápida, y puede almacenar en caché las búsquedas de ejecuciones anteriores.
fuente
un script bash en el que puede capturar su archivo de registro y canalizarlo.
la salida se ve así:
fuente
Una rápida perl:
fuente
Si el formato de registro muestra constantemente lo mismo que muestra arriba, puede hacerlo realmente sucio con
echo 10:45 accessed by 10.13.13.10|awk '{print $4}'|nslookup
fuente