Passe stdin no servidor Unix ou comando dig
Pergunta
Vamos dizer que eu tenho uma lista de IPs que entram em um registro que eu estou de rejeitos:
1.1.1.1
1.1.1.2
1.1.1.3
Eu gostaria de resolvê-los facilmente para nomes de host. Eu gostaria de ser capaz de
tail -f access.log | host -
Qual falhar como anfitrião não entende entrada de stdin desta forma. Qual é a maneira mais fácil de fazer com sem ter que escrever um arquivo estático ou fallback para perl / python / etc.?
Solução
Use xargs -l
:
tail -f access.log | xargs -l host
Outras dicas
Você também pode usar o ler builtin :
tail -f access.log | while read line; do host $line; done
Nos comandos abaixo, substitua cat
com tail -f
, etc., se necessário.
Usando host
:
$ cat my_ips | xargs -i host {}
1.1.1.1.in-addr.arpa domain name pointer myhost1.mydomain.com.
1.1.1.2.in-addr.arpa domain name pointer myhost2.mydomain.com.
Usando dig
:
$ cat my_ips | xargs -i dig -x {} +short
myhost1.mydomain.com.
myhost2.mydomain.com.
Note que a opção -i
para xargs
implica a opção -L 1
.
Para obter primeiro os IPs de um hospedeiro, consulte esta resposta .
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow