ファイルに新しいデータを追加するにはどうすればよいですか?

ファイルに新しいデータを追加するにはどうすればよいですか?

ということで、出力をファイルに保存する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 までの小規模ネットワークをスキャンすると仮定します)。

見る:Nmap リファレンス ガイド - ターゲット指定

関連情報