Então! Eu tenho uma varredura nmap que salva a saída em um arquivo,nmapscan.txt:
sudo nmap -sP 192.168.1* > nmapscan.txt
Também tenho alguns outros comandos para limpar e salvar todas as saídas desejadas em um arquivo,livehosts.txt:
cat ./temp/nmapscan.txt | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' > ./temp/macaddresses.txt
O que salva os endereços MAC. E:
grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' ./temp/nmapscan.txt > ./temp/ipaddresses.txt
O que salva os endereços IP. E:
cat ./temp/nmapscan.txt | grep -o -P '(?<=for).*(?=.attlocal)' > ./temp/hostnames1.txt
O que salva os nomes de host. E:
cut -d' ' -f 2 ./temp/hostnames1.txt > ./temp/hostnames2.txt
O que fiz para limpar os nomes de host (desculpe, esqueci de incluir isso na postagem original)... E:
cut -d' ' -f 1 ./temp/hostnames2.txt | paste ./temp/macaddresses.txt ./temp/ipaddresses.txt - > ./temp/livehosts.txt
.. que é o produto final que combina os dados desejados e é exibido como:
xx:xx:xx:xx:xx:xx 192.168.1.1 Netgear
xx:xx:xx:xx:xx:xx 192.168.1.111 John's Toilet Cam
Quero fazer a digitalização e escrever novamente, e quero olivehosts.txtarquivo para ser mais ou menos atualizado. Basta fazer a varredura e escrever novamente, como está, sobrescrever o arquivo. E nem todos os dispositivos estão conectados em momentos diferentes.
Eu tentei:
>>
Mas isso apenas duplica os dados já existentes no arquivo.
Duplicar os dados, cortar os dados recorrentes e depois gravar em um novo arquivo seria a melhor maneira de fazer isso?
Como você faria isso? Obrigado!
Responder1
Existem muitas manipulações desnecessárias.
Em primeiro lugar, use a -oG
opção (formato grepable). Isso tornará seu trabalho mais fácil. Fonte:Guia de referência do Nmap - Saída. E não há necessidade de redirecionar arquivos ( > nmapscan.txt
), pois o nmap já possui uma -oN
opção. Você pode registrar em um arquivo, mas ainda assim ter saída para o console.
Não tenho certeza se sua especificação de destino é legal:
nmap -sP 192.168.1*
Talvez nmap
tenha conseguido interpretá-lo corretamente, AFAIK não é uma sintaxe válida.
Em vez disso, use 192.168.1.0/24
ou 192.168.1.1-255
(assumindo que você deseja verificar uma rede pequena com endereços 192.168.1.0 a 192.168.1.255.