¿Cómo resolver por lotes la dirección IP de resolución inversa con el comando host en Linux?

¿Cómo resolver por lotes la dirección IP de resolución inversa con el comando host en Linux?

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 nslookupcon el |comando de canalización, pero el resultado no es fácil de leer, así que intenté usar el hostcomando pero el único resultado es información sobre cómo usarlo host.

¿Cómo puedo usar hostel 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

información relacionada