Como reverter em lote o endereço IP com o comando host no Linux?

Como reverter em lote o endereço IP com o comando host no Linux?

Pego endereços IP no log de acesso e quero descobrir de onde vêm esses endereços IP. Para fazer isso eu uso este script:

cat /var/log/nginx/access.log |awk '{ print $1}'|sort| uniq -c |sort -n -r | awk '{print $2}' 

um exemplo de saída é:

1.2.3.4
5.6.7.8
...

Posso passar o resultado nslookupcom o comando pipeline |, mas o resultado não é de fácil leitura, então tentei usar o hostcomando, mas a única saída é uma informação sobre como usar o hostcomando.

Como posso usar hosto comando para resolver endereços IP em lote?

Responder1

Você pode usar xargs, ele converte a entrada padrão em argumentos para um comando.

A opção -n limita os argumentos a um (delimitado por nova linha) e chama o host várias vezes para cada um deles, para que você possa fazer:

cat /var/log/nginx/access.log |awk '{ print $1}'|sort| uniq -c |sort -n -r | awk '{print $2}' | xargs -n 1 host

informação relacionada