21

私は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通常の出力はありません..)

誰かがこれについて私を助けることができますか?

4

2 に答える 2

44

nmap解析をより簡単にする優れた出力パラメーター-oGgrepable output )が付属しています。また、スキャンするすべてのIPアドレスを繰り返す必要はありません。nmapはネットマスクを認識します。

あなたの例は次のように書くことができます:

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

は、 grepable出力-oGを有効にし、出力先のファイルを指定します(この場合)。パイプシンボルは、nmap(stdout)の出力をgrepにリダイレクトします。これは、この場合を含む行のみを返します。-stdout80/open

于 2010-09-22T20:17:09.847 に答える
17

これを試して

nmap --open -p80 192.168.0.*

--open、ポート 80 が開いているホストのみをリストします。このようにして、フィルタリングは nmap 自体によって既に行われているため、シェル スクリプトをチェックインする必要がなくなります。

https://nmap.org/book/man-briefoptions.html

于 2015-08-17T15:49:07.047 に答える