私はプロキシで一般的に使用されているオープンポートを検索するためのクイックメソッドを探しています。私はPHPを使ってこれをやっていて、nmapを使っていて、次のコマンドを思いつきました。
<?php
system("nmap -PN -p U:1194,T:21,22,25,53,80,110,111,143,443,465,993,995,3306,8443,553,554,1080,3128,6515,6588,8000,8008,8080,8081,8088,8090,8118,8880,8909,1723,7080 {$_SERVER['REMOTE_ADDR']} 2>&1");
?>
問題はスキャンが完了するのに通常1〜2秒かかりますが、ポート80を定義してもまだ1〜2秒かかります。
ただし、PHPでこれを行うと、ほぼすぐに返されるか、0.5秒以内にタイムアウトが発生します。
if( @fsockopen( $_SERVER['REMOTE_ADDR'], $port, $errstr, $errno, 0.5 ) )
die("php_tests_callback({success: false, message: 'Client has port $port open'});");
もしそうなら、NMAPを使用するより最適な方法や代替案があるかどうか疑問に思います。私は多くのfsockopenを実行するためのPHPブランチプロセスの一種を書くのが好きです。
編集する:
明らかに、質問を投稿する前にNMAP担当者を読む必要があるようです。私は通常、スキャン時間を0.50秒以上に短縮する次のパラメータを考えました。
system("nmap -T5 --host-timeout 4s --min-rate 1000 -PN -p U:1194,T:21,22,25,53,80,110,111,143,443,465,993,995,3306,8443,553,554,1080,3128,6515,6588,8000,8008,8080,8081,8088,8090,8118,8880,8909,1723,7080 {$_SERVER['REMOTE_ADDR']} 2>&1");
しかし、私はまだ他の提案/申請で開いています。
ベストアンサー1
見て非地図WebホスティングNmapスキャナ。 2年前、Nmap開発チームの指導の下、Google Summer of Codeプロジェクトとして開発されました。