nmapは、特定のポートが開いているホストのみを表示できますか?

nmapは、特定のポートが開いているホストのみを表示できますか?

nmapSSHと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}'

おすすめ記事