Nmap
nmapはポートスキャナではなくセキュリティスキャナであるため、ICMP echoスキャン機能、つまりはpingによる死活確認機能も当然ながら初期版から備えている。対象サーバーが複数に渡る場合、並列でスキャンすることも可能である。
デフォルトでは、他のスキャン機能を用いる際、ICMP echoスキャンも事前に行われ、生存が確認できているサーバーのみがスキャン対象となる。しかし、pingに応答しないようにフィルタリングされたサーバーも存在し、そのような場合には事前の生存確認に失敗することとなる。nmapではそのような場合のために、事前の生存確認を行わない機能、対象サーバーをテキストファイルで指定する機能が後期のバージョンに搭載された。
TCPにおける3ウェイ・ハンドシェイクの最後のFINパケットを送出しない(代わりにRSTを送出する)手法である。対象ポートへの接続を試みるものの、最後のパケットを送出しない、つまりコネクション確立を途中で止めてしまうことから、half-openスキャンとも呼ばれる。前述のTCP connect()スキャンに比べて、対象ホストで動作するサービスプログラムに接続確立を示すを示すログが残らない点(もちろん、OS自身を守るタイプのパケットフィルタ型ファイアウォール、例えばipfirewallやiptablesなどには捕捉される可能性がある)、connect()システムコールを用いずrawパケットを用いる関係でスキャン効率が改善される点などが優位点となる。また、TCP connect()スキャン以外の他のスキャンと比較して、open、closed、filteredの3種を区別可能な唯一のスキャン手法でもある。
SYNに対してSYN/ACKが返ってくればopen、RSTが返ってくればclosed、タイムアウトやICMP到達不能エラー応答があればfilteredと判断することになる。
nmapには、Luaスクリプト言語で記述されたスクリプトを解するスクリプトエンジン「Nmap Scripting Engine」が実装されている。このエンジンの実装により、nmapが行う各種スキャンをスクリプト記述することができるようになっており、これによってスキャンの自動化、一括化、利用者レベルでのスキャン挙動の調整が可能となっている。