nmap を使用して、特定の範囲内のどの IP にポート 80 があるかを判断するにはどうすればよいでしょうか? 質問する

nmap を使用して、特定の範囲内のどの IP にポート 80 があるかを判断するにはどうすればよいでしょうか? 質問する

私は bash スクリプトの初心者ですが、これを動作させようとしています:

ポート 80 が開いているデバイスを見つけるために IP 範囲をスキャンすると、次のようになると思います。

#!/bin/bash
echo -----------------------------------
for ip in 192.168.0.{1,.255}; do
nmap -p80 192.168.0.1
      if #open; then
            echo "{ip} has the port 80 open"
      else
            #do nothing
fi
done
echo -----------------------------------
exit 0

また、次のような結果も見たいです:

-----------------------------------
192.168.0.1 has the port 80 open
192.168.0.10 has the port 80 open
192.168.0.13 has the port 80 open
192.168.0.15 has the port 80 open
-----------------------------------

(つまり、エラーやnmap通常の出力はありません。)

誰かこれを手伝ってくれませんか?

ベストアンサー1

nmap便利な出力パラメータが付属しています-oGgrep可能な出力) を使用すると、解析が簡単になります。また、スキャンするすべての IP アドレスを反復処理する必要もありません。nmap はネットマスクを認識します。

例は次のように記述できます。

nmap -p80 192.168.0.0/24 -oG - | grep 80/open

-oGgrep可能な出力-出力先のファイルを指定します (この場合はstdout)。パイプ記号は nmap (stdout) の出力を grep にリダイレクトし、80/openこの場合は を含む行のみが返されます。

おすすめ記事