nmap
SSHとHTTPの両方が有効になっているローカルネットワーク上のすべてのホストを一覧表示できますか?これを行うには、次のコマンドを実行できます。
nmap 192.168.1.1-254 -p22,80 --open
ただし、ここにリストされているポートの1つを開くホストを一覧表示しますが、ホストにすべてのポートを開くようにしたいと思います。また、出力は非常に冗長です。
# nmap 192.168.1.1-254 -p22,80 --open
Starting Nmap 6.47 ( http://nmap.org ) at 2015-12-31 10:14 EST
Nmap scan report for Wireless_Broadband_Router.home (192.168.1.1)
Host is up (0.0016s latency).
Not shown: 1 closed port
PORT STATE SERVICE
80/tcp open http
Nmap scan report for new-host-2.home (192.168.1.16)
Host is up (0.013s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap done: 254 IP addresses (7 hosts up) scanned in 3.78 seconds
私が探している結果は次のとおりです。
192.168.1.16
上記のホストは、すべてのポートが開いている唯一のホストであるためです。
確実に出力を後処理することができますが、nmapの出力形式に依存したくないので、方法がある場合はnmapが実行するようにしたいと思います。
ベストアンサー1
Nmapにはこれを行う方法はありませんが、「nmapの出力形式に依存」したくないというあなたの意見で、Nmapには機械可読解析のための2つの安定した出力形式があることを指摘しました。年をとる人はクエリ出力(-oG
)、これはPerl、awk、およびgrepを使用した処理に適していますが、いくつかの高度な出力(NSEスクリプト出力、ポート理由、パス追跡など)が不足しています。より完全な形式は次のとおりです。XML出力( -oX
)しかし、これはあなたの目的と比較して過剰かもしれません。
-oG
、または(-oX
両方の形式と「通常の」テキスト出力の両方)を使用してこれらの出力をファイルに保存したり、次のいずれ-oA
かをstdoutに直接送信したりできます。nmap 192.168.1.1-254 -p22,80 --open -oG - | awk '/22\/open.*80\/open/{print $2}'