所以!我有一個 nmap 掃描,將輸出保存到文件中,nmapscan.txt:
sudo nmap -sP 192.168.1* > nmapscan.txt
我還有一些其他命令來清理並將所有所需的輸出保存到一個文件中,livehosts.txt:
cat ./temp/nmapscan.txt | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' > ./temp/macaddresses.txt
其中保存了 mac 位址。和:
grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' ./temp/nmapscan.txt > ./temp/ipaddresses.txt
其中保存了 IP 位址。和:
cat ./temp/nmapscan.txt | grep -o -P '(?<=for).*(?=.attlocal)' > ./temp/hostnames1.txt
這保存了主機名稱。和:
cut -d' ' -f 2 ./temp/hostnames1.txt > ./temp/hostnames2.txt
我這樣做是為了清理主機名稱(抱歉,忘記將其包含在原始帖子中)......並且:
cut -d' ' -f 1 ./temp/hostnames2.txt | paste ./temp/macaddresses.txt ./temp/ipaddresses.txt - > ./temp/livehosts.txt
..這是結合了所需數據並顯示如下的最終產品:
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
我想再次掃描並寫入,並且想要livehosts.txt文件或多或少會更新。只需按原樣進行掃描並再次寫入即可覆蓋文件。並且並非所有設備都在不同時間連接。
我試過了:
>>
但這只會使文件中已有的資料加倍。
將數據加倍、刪除重複數據,然後寫入新文件是最好的方法嗎?
你會怎樣做呢?謝謝!
答案1
有太多不必要的操作。
首先,使用-oG
選項(grepable 格式)。這將使您的工作更加輕鬆。來源:Nmap 參考指南 - 輸出。並且不需要進行檔案重定向(> nmapscan.txt
),因為 nmap 已經有一個-oN
選項。您可以記錄到文件,但仍然可以將輸出輸出到控制台。
我不確定你的目標規範是否合法:
nmap -sP 192.168.1*
也許nmap
設法正確解釋它,據我所知,它不是有效的語法。
相反,請使用192.168.1.0/24
或192.168.1.1-255
(假設您要掃描位址為 192.168.1.0 到 192.168.1.255 的小型網路。