ホームページ > バックエンド開発 > PHPチュートリアル > シンプルな PHP オンライン ポート スキャナー PHP チュートリアル

シンプルな PHP オンライン ポート スキャナー PHP チュートリアル

WBOY
リリース: 2016-07-21 14:52:25
オリジナル
1005 人が閲覧しました

PHP は強力な Web 開発言語です。開発効率が高く、構文がシンプルで、動的な Web サイト向けにカスタマイズされており、よりオブジェクト指向です (C++ に近く、JAVA との関連性もあります)。残念ながら、これがシングルスレッドです。これが致命的な弱点です。 PHP は CC++ で書かれていると言われています。)、中間層の開発や COM の呼び出しには C、C++、JAVA も使用できます。サーバーのメンテナンスが容易で、障害も少ないです。

動的なWebサイト向けに作られているため、X-scanのような強力なスキャナーは開発できない運命にありますが、いくつかの簡単な機能を実装したい場合には十分です。

ポート スキャンは、最も一般的に使用されるチェック手段です。インターネットカフェのような場所では、既存のWebサービスが提供するポートスキャンを使用する場合、専用のスキャナをダウンロードするのがさらに面倒になります。それは本当に多くの手間を省きます。

私が作成した PHP ポート スキャナーのソース コードを見てみましょう:

コード:


//天使によるCodz

$youip=$HTTP_SERVER_VARS["REMOTE_ADDR"] // ローカル IP アドレスを取得します
; $remoteip=$HTTP_POST_VARS['remoteip'] // フォーム送信の IP アドレスを取得します
; ?>

セキュリティ エンジェル—ポート オンライン検出 <スタイル TYPE="テキスト/css">


if (!empty($remoteip)){
// フォームが空でない場合は、IPアドレス形式判定を入力します

関数 err() {
die("申し訳ありませんが、IP アドレスが不正です

ここをクリックして戻る"); }
// 間違った IP を送信した場合のプロンプト メッセージを定義します

$ips=explode(".",$remoteip); // IP アドレスを
で分割します。
if (intval($ips[0])255 または intval($ips[3])255))えー(); // 最初と最後の IP セグメントの数が 1 未満または 255 を超える場合、エラー メッセージが表示されます

if (intval($ips[1])255 または intval($ips[2])255))えー(); // 2 番目と 3 番目の IP セグメントの数が 0 未満または 255 を超える場合、エラー メッセージが表示されます

$closed='このポートは現在閉じられています。 ';
$opened='このポートは現在開いています。
; $close="閉じる"; $open="開く"; $port=array(21,23,25,79,80,110,135,137,138,139,143,443,445,1433,3306,3389); $msg=array(
「FTP」、
「テレネット」、
「SMTP」、
「指」
「http」、
「ポップ3」、
「位置情報サービス」、
「Netbios-NS」、
「NetBIOS-DGM」、
「Netbios-SSN」、
「IMAP」、
「https」、
「Microsoft-DS」、
「MSSQL」、
「MYSQL」、
「ターミナルサービス」
); // IP 形式を確認した後、配列を使用して各ポートに対応するサービス名とステータスを定義します

echo "

n"; エコー "n"; echo "n";
エコー "
n"; echo "
スキャンした IP: color=red>".$remoteip."
n"; echo "n"; echo "n"; echo "n"; echo "n"; echo "n"; echo "n"; エコー "n"; // 表示されているテーブルを出力します

for($i=0;$i {
$fp = @fsockopen($remoteip, $port[$i], &$errno, &$errstr, 1); if (!$fp) {
echo " ;gt;n";
} その他 {
echo " ;gt;";
}
}
// for ステートメントを使用して、fsockopen 関数を使用してリモート ホストの関連ポートに接続し、結果を出力します

echo "n"; echo "スキャンを続行>>>n"; エコー "n"; echo "
portservice検出結果説明
".$port[$i]."".$msg[$i]." align=center>".$close."".$closed."
".$port[$i]."".$msg[$i]."align=center>".$open."".$opened."
n"; エコー「n」; echo "n"; エコー "n"; echo "
Copyright © 2004 Security Angel Team[S4T] All Rights Reserved.
n"; エコー "n"; echo "n"; エコー "n"; 出る
}
// 検出終了

echo "n"; エコー "n"; echo "n"; エコー "n"; echo "n"; エコー "n"; エコー ""; echo "
あなたの IP:".$youip."
n"; echo "n"; echo "<入力タイプ=送信値=スキャン名=スキャン>n"; エコー "
n"; // フォームが空の場合は、IP アドレスを送信するフォームを表示します

?>





追記


このスキャナーは非常にシンプルです。配列はポートの関連情報を定義するために使用され、接続できる場合はポートが開いていることを意味し、接続できない場合は fsockopen 関数を使用します。

最大の欠点は、PHP がシングルスレッドであるため、速度が非常に遅いことです。これは利便性と単純さを犠牲にしています。実際、このコードを書いた人は、PHP が目的にのみ使用されるわけではないことを伝えたいと考えています。動的な Web サイトの開発にも使用できます。ネットワーク セキュリティの分野では、人々は物事の本来の働きに過度に注意を払い、他の側面の特性を無視することがよくあります。




http://www.bkjia.com/PHPjc/371606.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/371606.html

技術記事

PHP は強力な Web 開発言語です。開発効率が高く、構文がシンプルで、動的 Web サイト向けにカスタマイズされており、よりオブジェクト指向です (C++ に近く、JAVA との関連性もあります)。残念ながら、シングルスレッドです。

Copyright © 2004 Security Angel Team[S4T] All Rights Reserved.

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート