¡Entonces! Tengo un escaneo de nmap que guarda el resultado en un archivo,nmapscan.txt:
sudo nmap -sP 192.168.1* > nmapscan.txt
También tengo algunos otros comandos para limpiar y guardar todos los resultados deseados en un archivo,livehosts.txt:
cat ./temp/nmapscan.txt | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' > ./temp/macaddresses.txt
Lo que guarda las direcciones mac. Y:
grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' ./temp/nmapscan.txt > ./temp/ipaddresses.txt
Lo que guarda las direcciones IP. Y:
cat ./temp/nmapscan.txt | grep -o -P '(?<=for).*(?=.attlocal)' > ./temp/hostnames1.txt
Lo que guarda los nombres de host. Y:
cut -d' ' -f 2 ./temp/hostnames1.txt > ./temp/hostnames2.txt
Lo cual hice para limpiar los nombres de host (lo siento, olvidé incluir esto en la publicación original)... Y:
cut -d' ' -f 1 ./temp/hostnames2.txt | paste ./temp/macaddresses.txt ./temp/ipaddresses.txt - > ./temp/livehosts.txt
.. que es el producto final que combina los datos deseados y se muestra 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
Quiero hacer el escaneo y escribir, de nuevo, y quiero ellivehosts.txtarchivo para estar más o menos actualizado. Simplemente haciendo el escaneo y escribiendo nuevamente, tal cual, escribe sobre el archivo. Y no todos los dispositivos están conectados en momentos diferentes.
He intentado:
>>
Pero eso sólo duplica los datos que ya están en el archivo.
¿Duplicar los datos, cortar los datos recurrentes y luego escribir en un archivo nuevo sería la mejor manera de hacerlo?
¿Cómo harías para hacer esto? ¡Gracias!
Respuesta1
Hay demasiadas manipulaciones que son innecesarias.
En primer lugar, utilice la -oG
opción (formato grepable). Esto facilitará su trabajo. Fuente:Guía de referencia de Nmap: salida. Y no es necesario realizar la redirección de archivos ( > nmapscan.txt
) ya que nmap ya tiene una -oN
opción. Puede iniciar sesión en un archivo pero aún tener salida a la consola.
No estoy seguro de que su especificación objetivo sea siquiera legal:
nmap -sP 192.168.1*
Quizás nmap
logré interpretarlo correctamente, AFAIK, no es una sintaxis válida.
En su lugar, utilice 192.168.1.0/24
o 192.168.1.1-255
(suponiendo que desee escanear una red pequeña con direcciones 192.168.1.0 a 192.168.1.255.