Como ter a repetição do terminal com IPs diferentes?

1

Seria possível fazer com que o terminal repita nslookup , começando de 192.168.1.2 a 192.168.1.20 , para ver todos os computadores na rede sem precisar entrar no servidor. Isso é possível?

    
por Oontzie 15.12.2014 / 19:22

2 respostas

2

nslookup em si não tem suporte para notação CIDR, intervalos ou curingas, portanto, sua melhor opção é provavelmente um loop bash simples.

for ip in 192.168.1.{2..20}; do nslookup $ip; done
    
por dfarrell07 15.12.2014 / 20:18
1

A resposta do dfarrell07 resolve o problema de uma maneira geral, não dependendo do nslookup - que é o jeito certo de fazê-lo, eu acho.

Mas, para fins de diversidade e exemplos de sintaxe de shell, aqui está outra abordagem, mais relacionada à pesquisa de nomes de domínio:

O programa de pesquisa pode ser solicitado para lidar com todos os endereços de uma só vez; Isso parece ser complicado com nslookup , (pode ser necessário usar expect ), então vou usar dig .

Existe uma opção -x para dig fazer pesquisas inversas. Essa opção leva apenas um endereço, então apenas listá-los não funciona. Mas pode haver várias consultas na linha de comando, então a opção pode ser repetida.

Não podemos usar 192.168.1.{2..20} para a lista de endereços, porque precisamos de um -x na frente de cada um. Usando '-x 192.168.1.'{2..20} coloca um -x na frente deles - mas não como um argumento de linha de comando separado - dig obteria -x 192.168.1.2 como um argumento, enquanto deveria ver -x e 192.168.1.2 . Usarei uma expansão de subshell como solução para separar as palavras - mas tenho certeza de que há maneiras mais limpas de fazer isso.

Este comando deve listar os nomes de host que você deseja:

dig +noall +answer $(echo '-x 192.168.1'{2..20})

mostrando algo como

$ dig +noall +answer $(echo '-x 193.99.144.'{80..83})  
80.144.99.193.in-addr.arpa. 20800 IN    PTR     redirector.heise.de.
81.144.99.193.in-addr.arpa. 20134 IN    PTR     www.ix-konferenz.de.
83.144.99.193.in-addr.arpa. 21599 IN    PTR     limesurvey.heise.de.


Em relação aos argumentos de linha de comando separados: você pode tentar os seguintes comandos, eles mostrarão a mesma saída, mas no primeiro, echo na frente recebe 11 argumentos, cada -x e endereço IP separados, enquanto em o segundo, o echo obtém apenas 7 argumentos:

$ echo dig +noall +answer $(echo '-x 193.99.144.'{80..83})
dig +noall +answer -x 193.99.144.80 -x 193.99.144.81 -x 193.99.144.82 -x 193.99.144.83
$ echo dig +noall +answer '-x 193.99.144.'{80..83} 
dig +noall +answer -x 193.99.144.80 -x 193.99.144.81 -x 193.99.144.82 -x 193.99.144.83
    
por Volker Siegel 16.12.2014 / 05:03