私は 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
便利な出力パラメータが付属しています-oG
(grep可能な出力) を使用すると、解析が簡単になります。また、スキャンするすべての IP アドレスを反復処理する必要もありません。nmap はネットマスクを認識します。
例は次のように記述できます。
nmap -p80 192.168.0.0/24 -oG - | grep 80/open
は-oG
、grep可能な出力、-
出力先のファイルを指定します (この場合はstdout
)。パイプ記号は nmap (stdout) の出力を grep にリダイレクトし、80/open
この場合は を含む行のみが返されます。