Recojo direcciones IP del registro de acceso y quiero saber de dónde provienen esas direcciones IP. Para hacer esto utilizo este script:
cat /var/log/nginx/access.log |awk '{ print $1}'|sort| uniq -c |sort -n -r | awk '{print $2}'
un resultado de ejemplo es:
1.2.3.4
5.6.7.8
...
Puedo pasar el resultado nslookup
con el |
comando de canalización, pero el resultado no es fácil de leer, así que intenté usar el host
comando pero el único resultado es información sobre cómo usarlo host
.
¿Cómo puedo usar host
el comando para resolver direcciones IP por lotes?
Respuesta1
Puede usar xargs, convierte la entrada de entrada estándar en argumentos para un comando.
La opción -n limita los argumentos a uno (delimitado por una nueva línea) y llama al host varias veces para cada uno de ellos, por lo que puedes hacer:
cat /var/log/nginx/access.log |awk '{ print $1}'|sort| uniq -c |sort -n -r | awk '{print $2}' | xargs -n 1 host