ホームページ  >  記事  >  バックエンド開発  >  データベースを使用しないドメイン名照会プログラムの詳細 PHP版(1)_PHPチュートリアル

データベースを使用しないドメイン名照会プログラムの詳細 PHP版(1)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:06:03911ブラウズ

ファイル 1:index.php


echo "\n";
############################################### ## ##################################
mydowns は、Web サイト (http:/) が所有する中国語版を収集および整理しています。 /www.85time.com) #
# このプログラムは、2001 年 5 月 18 日にリリースされた最新バージョンです。このサイトは今後もこのプログラムの修正と改善を行っていきますので、ご注意ください。 #
# このプログラムはドメイン名所有者の詳細情報を照会することができ、照会用に 9 種類のドメイン名を提供するようになりました。 #
# デモアドレス: http://www.85time.com/whois PHP、CGを提供するI、HTML、JSP等のソースプログラム、電子教科書、記事資料この情報は保管しておいてください、ありがとうございます。                                                                 ######################################################################## ##########################################
MWhois - Whois ルックアップPHP と Perl で書かれたスクリプト
Copyright (C) 2000 Matt Wilson

このプログラムはフリー ソフトウェアです。
Free Software Foundation によって公開されている GNU General Public License の条項に基づいて、
それを再配布したり、変更したりすることができます。ライセンスのバージョン 2、または
(オプションで) それ以降のバージョン。

このプログラムは役立つことを期待して配布されています
ただし、いかなる保証もありません。
商品性や特定目的への適合性についての暗黙の保証もありません。  詳細については、
GNU 一般公衆利用許諾書を参照してください。

このプログラムと一緒に GNU General Public License
のコピーも受け取っているはずです。そうでない場合は、Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/

if(!isset($use_global_templates))
$use_global_templates = 1; までご連絡ください。    // グローバル テンプレートを使用するかどうか

$template_header = "gheader.tml";    // グローバルヘッダーテンプレート
$template_footer = "gfooter.tml";    // グローバル フッター テンプレート

/* テンプレート情報
----------------------------
テンプレート内の次の文字列は次のとおりです。説明に置き換えられます。

[>DOMAIN<] = 検索するドメイン
[>RAWOUTPUT<] = Whoisクエリの生の出力
[>WHOIS_SERVER<] = 使用されるWhoisサーバー
[>AVAIL_LIST<] = のリスト利用可能なドメイン (グローバル/ウィザード検索モード)
[>UNAVAIL_LIST<] = 利用できないドメインのリスト (グローバル/ウィザード検索モード)
[>ERROR_MSG<] = 生成されたエラー メッセージ
[>EXT< ;] = 設定されている場合の拡張子
[>EXT_HTML_LIST<] = HTML リストでサポートされている拡張子のリスト
[>EXT_LIST
スクリプトへのパラメータ (パラメータはありません)通常の検索スクリプトを起動します);

show_raw=1 = 未加工の出力ページを表示するかどうか
do_wizard=1 = 渡される情報がウィザード用かどうか
domain=(string) = ドメイン (文字列) を検索する
list_exts=1 = を表示拡張機能がサポートされているページ
do_global=1 = グローバル検索ページに移動します
do_mini_search=1 = 他には何もせずに検索フォームを表示するだけです
company=(string) = ウィザードに使用され、検索に必要です
keyword1=(string) =ウィザードに使用され、検索に必要です
keyword2=(string) = ウィザードに使用され、検索に必要です

不明な点がある場合は、提供されているサンプル テンプレートを参照してください
*/

$template_search_mini = "検索フォーム.tml";    // テンプレートを検索
$template_search = "searchmain.tml";
$template_raw_output = "rawoutput.tml";    // 生の出力テンプレート
$template_available = "isavail.tml";    // 利用可能なテンプレート
$template_taken = "istaken.tml";    // 取得したテンプレート
$template_wizard = "wizard.tml";    // ドメイン ウィザードのテンプレート
$template_wizard_results = "wizardres.tml"; // ドメイン ウィザードの出力テンプレート
$template_error = "error.tml";    // エラーの場合のテンプレート
$template_exts_list = "exts_list.tml";
$template_global = "global.tml";
$template_global_results = "globres.tml";

$search_title = "フロイドにあなたのドメイン名を見つけてもらいましょう";
$raw_output_title = "フロイドの生の WHOIS 出力";
$available_title = "フロイドはドメイン名が利用可能だと言いました!";
$taken_title = "フロイド氏は、Doman 名が使用されていると述べています";
$wizard_title = "ドメイン名ウィザードのフロイド";
$error_title = "フロイドにエラーが発生しました!";
$exts_list_title = "Floyd は次の拡張機能をサポートしています";
$global_title = "大変な仕事はフロイドに任せてください!";

// 使用する拡張機能。必要に応じて編集してください
$whois_exts = array(
"com",
"net",
"org",
"com.cn",
"net .cn」、
「org.cn」、
「gov.cn」、
「sh」、
「cc」
);

// 一部の拡張機能 (com/net/org) には、情報に使用されるサーバーの名前が含まれるサーバーがあります。これは、サーバー情報のソースとして Whois サーバーを使用するようにスクリプトに指示するだけです。 ... ;)
$whois_si_servers = array();

// `whois' サーバーの配列
$whois_servers = array();

// 情報用のデフォルトの Whois サーバー
$whois_info_servers = array();

// 試行するバックアップ Whois サーバー
$whois_info_servers_backup = array();

// ドメインが利用可能な場合に返される文字列
$whois_avail_strings = array();

//
$errormsg = ""; の後にいくつかの置換文字列が続きます。
$titlebar = "MWhois はマット・ウィルソンによって書かれました";    // デフォルトのタイトルバー
$rawoutput = "";
$avail = array();
$unavail = array();
$whois_server = "";

// スクリプトの名前
$script_name = "index.php";

function my_in_array($val,$array_)
{
for($l=0; $l if($array_[$l] == $val)
return 1 ;

0を返します。
}

// これにより、拡張機能のサーバー情報が $whois_exts にロードされます。
関数load_server_info()
{
グローバル $whois_exts;
グローバル $whois_si_servers;
グローバル $whois_servers;
グローバル $whois_info_servers;
グローバル $whois_info_servers_backup;
グローバル $whois_avail_strings;

//servers.lst ファイルをロードします
$tlds = file("servers.lst");

for($l=0; $l // 時間の先頭のスペースまたは末尾のスペース
$tlds[$l] = Chop($tlds[$l]);

// コメント行をフィルタリングします (# で始まります)
if(substr($tlds[$l], 0, 1) == "#" || !strlen($tlds[$l])) { continue ; }

// 区切り文字 `|' を介して爆発します
$es =explode("|", $tlds[$l]);

// この TLD が必要かどうかを確認します
if(!my_in_array($es[0], $whois_exts)) { continue; }

// はい、そのため、詳細を適切な配列に保存します
$whois_servers[$es[0]] = $es[1];
$whois_si_servers[$es[0]] = $es[5];
$whois_info_servers[$es[0]] = $es[3];
$whois_info_servers_backup[$es[0]] = $es[4];
$whois_avail_strings[$es[1]] = $es[2];

// 以上です!
}
}

function select_info_server($domain, $ext)
{
global $whois_info_servers;
グローバル $whois_si_servers;
グローバル $whois_server;
グローバル $whois_servers;

$whois_server = "";

if($whois_si_servers[$ext]){
if(($co = fsockopen($whois_servers[$ext], 43)) == false){
echo "\n";
fputs($co, $domain.".".$ext."\n");
while(!feof($co))
$output .= fgets($co,128);

fclose($co);

$he = strpos($output, $whois_si_servers[$ext]) + strlen($whois_si_servers[$ext]);
$le = strpos($output, "\n", $he);
$whois_server = substr($output, $he, $le-$he);
echo "\n";
}
} else {
$whois_server = $whois_info_servers[$ext];
}

$whois_server = トリム($whois_server);
}

// すべての変更を行います
function make_changes($fil)
{
global $domain;
グローバル $errormsg;
グローバル $titlebar;
グローバル $rawoutput;
グローバル $avail;
グローバル $unavail;
グローバル $ext;
グローバル $whois_exts;
グローバル $whois_servers;
グローバル $script_name;

$f = implode("",file($fil));

$f = str_replace("[>WHOIS_SERVER<]",$whois_servers[$ext],$f);
$f = str_replace("[>TITLE_BAR $f = str_replace("[>DOMAIN $f = str_replace("[>ERROR_MSG $f = str_replace("[>RAWOUTPUT
for($l=0; $l $sp[1] = substr(strchr($avail[$l],"."),1);
$sp[0] = substr($avail[$l],0,strlen($avail[$l])-strlen($sp[1])-1);
$avail_s = $avail_s."
href=\"".$script_name."?domain=".$sp[0]."&ext=".$sp[1]."\"> ".$avail[$l]."

";
}

for($l=0; $l $sp[1] = substr(strchr($unavail[$l],"."),1);
$sp[0] = substr($unavail[$l],0,strlen($unavail[$l])-strlen($sp[1])-1);
$unavail_s = $unavail_s."
href=\"".$script_name."?domain=".$sp[0]."&ext=".$sp[1]."\"> ".$unavail[$l]."

";
}

$f = str_replace("[>AVAIL_LIST<]",$avail_s,$f);
$f = str_replace("[>UNAVAIL_LIST<]",$unavail_s,$f);
$f = str_replace("[>SCRIPT_NAME<]", $script_name, $f);
$f = str_replace("[>EXT<]",$ext,$f);
$f = str_replace("[>EXT_LIST<]",implode("
",$whois_exts),$f);
$f = str_replace("[>EXT_HTML_LIST<]","