ということで、出力をファイルに保存するnmapスキャンがあります。テキスト:
sudo nmap -sP 192.168.1* > nmapscan.txt
他にも、必要な出力をすべて1つのファイルに整理して保存するコマンドがいくつかあります。ライブホスト.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
もう一度スキャンして書き込みたいのですが、ライブホスト.txtファイルは多かれ少なかれ更新されます。スキャンして再度書き込むだけで、そのままファイルが上書きされます。また、すべてのデバイスが異なる時間に接続されるわけではありません。
私はもう試した:
>>
しかし、そうすると、ファイル内にすでに存在するデータが重複することになります。
データを 2 倍にして、繰り返しデータを切り取って、新しいファイルに書き込むのが最善の方法でしょうか?
これをどうやって実行しますか? ありがとうございます!
答え1
不必要な操作が多すぎます。
まず、-oG
オプション (grep 可能な形式) を使用します。これにより、作業が簡単になります。ソース: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 までの小規模ネットワークをスキャンすると仮定します)。