ホームページ >バックエンド開発 >XML/RSS チュートリアル >xmlhttp を使用して Web サイトにドメイン名クエリ機能を追加する方法の詳細な紹介
Web サイトを構築する準備をするときは、ドメイン名登録機関にインターネット ドメイン名を申請する必要があります。そのため、通常、使用する予定のドメイン名が登録されているかどうかを確認する必要があります。 NIC Web サイト http://www.nic.net にアクセスし、「whois」リンクをクリックして、照会するドメイン名を入力すると、必要な結果が得られます。
WHOIS サーバーは、Web サイトのドメイン名登録者、管理契約、連絡先情報 (電話、電子メール、住所)、請求先連絡先を含む、.com、.net、.org の国際的なトップレベル ドメイン名のすべての Whois データを返します。 、テクニカル サポート、ドメイン ネーム サーバーの情報は、ユーザーが Web サイトの基本的な状況を理解するのに非常に役立ちます。多くのドメイン名登録機関の Web サイトは通常、高度な Whois (ドメイン名照会) サービスを備えていますが、個人の Web サイトはドメイン名登録機関の資格やデータを持たないため、一般的な条件では Whois サービスを提供できません。
実際、xmlHTTP プロトコルを使用すると、私たち一人ひとりが自分の個人 Web サイトでドメイン名詳細クエリ (WHOIS) サービスを提供できます。この記事では、ASP と xmlhttp プログラミングを組み合わせてこの機能を実現する方法を紹介します。
1. 原則:
原則は非常に単純です。ドメイン名のクエリは主に RFC 954 によって提供される WHOIS プロトコルに基づいています。導入プロセスでは、独自の WEB サーバーを介して NIC サイトの WHOIS データベース サーバーにアクセスし、WHOIS データベースから必要なコンテンツをクエリし、それを ASP を通じて Web ページに結合してクライアントに送り返します。
同時に、xmlHttp プロトコルを使用して、クライアント Web ページの更新効果を実現せず、サーバーに WHOIS データを取得するように要求します。
具体的なプロセスは、クライアントがxmlhttp経由でドメイン名クエリリクエストを送信する→WEBサーバーのASPリスニングページがリクエストを受け入れ、xmlhttpを使って取得コマンドをWHOISサーバーに送信する→WHOISデータベースが実行する。クエリ操作を実行し、結果を自分自身に返します WEB サーバー (HTML フォーム) --> WEB サーバーはコンテンツを受信すると、すぐに結果をクライアントに送信します --> クライアントのブラウザは vbscript を使用して余分な HTML をフィルタリングし、選択しますWhoisデータを表示します。
2. ASP XmlHttp プログラミングの簡単な紹介:
1. クライアント HTML ページ:
<script language="vbscript"> Sub submit1_onmouseup '当点击“查询”按钮时触发; Dim objXML, objXSL, objfso,strFile, strFileName, strXSL,strURL,TheForm Set TheForm = Document.Wordfind window.status="正在检索数据···" strURL="dns.asp" Set objXML = CreateObject("Microsoft.XMLHTTP") '创建MS的XMLHTTP组件; stra = "submit=submit&fqdn="&TheForm.words.value objXML.Open "post",strURL,false '采用Post提交方式; objXML.setrequestheader "content-length",len(stra) objXML.setrequestheader "content-type","application/x-www-form-urlencoded" objXML.send stra ' 发送信息 xmlGet = objXML.responseText '稍等片刻后,得到服务器端传回来的结果; if instr(1,xmlGet,"This is not a valid .com .net .org .info or .biz domain name",1)<1 and len(trim(xmlGet))>100 then if instr(1,xmlGet,"This domain is available",1)<1 then if instr(1,xmlGet,"Registrant:",1) then strFind1 =instr(1,xmlGet,"Registrant:",1) else strFind1 = instr(1,xmlGet,"<PRe><FONT face=""Verdana, Arial",1)+65 strFind2 = instr(1,xmlGet,"</FONT></pre>",1) strFind4=strFind2-strFind1 sHTML = mid(xmlGet,strFind1,strFind4) TheForm.comments.value="查询结果:"+chr(13)+chr(10)+sHTML window.status="查询结果:该域名已被占用" else TheForm.comments.value="恭喜你,此域名可用!" window.status="查询结果:该域名仍然处于可用状态!" end if else TheForm.comments.value= "无效的国际顶级域名!请输入以(.com .net .org .info or .biz)结尾的国际域名, 例如sun.com" window.status="无效的国际顶级域名!请输入以(.com .net .org .info or .biz)结尾的国际域名, 例如CCTV.com" end if Set objXML = Nothing end sub </script> <html><head><title>XMLHTTP之域名查询篇</title></head> <body bgColor=#cccca3> <form method="post" name=wordfind onsubmit="javascript:return false"> 请输入域名名称:<input type="text" value="cctv.com" name="words" size="69"> <input type="submit" value="查询" id=Submit1 name=Submit1> <TEXTAREA name=comments readonly rows=10 cols=76></TEXTAREA> </form></body></html>
2. サーバー側 ASP プログラム:
<%dim xmlGet,objXML, objXSL, objFSO,strFile, strFileName, strXSL,strURL xmlGet="" if len(trim(Request.form("fqdn"))) > 1 then strURL="http://www.domainbank.net/whoisresults_gen.cfm?show=1" 'WhoIS服务器的地址 Set objXML = CreateObject("Microsoft.XMLHTTP") '创建MS的XMLHTTP组件 stra = "submit=submit&fqdn="&trim(Request.form("fqdn")) objXML.Open "post",strURL,false objXML.setrequestheader "content-length",len(stra) objXML.setrequestheader "content-type","application/x-www-form-urlencoded" objXML.send stra ' 发送信息到WhoIs数据库服务器; xmlGet = objXML.responseText ' 取得域名服务器返回的信息 Set objXML = Nothing end if response.write xmlGet '返回结果给客户端 %>
上記のプロセスで、ASP プログラムは独自の WEB で見つけることができます。実際のアプリケーションでは、この中間層を省略することもでき、vbscript を使用して xmlhttp 経由で WHOIS データベースと直接データを送受信することもできます。ただし、この場合、IE の「(他の) ドメインを介したデータ リソースへのアクセス」が (デフォルトで) 無効になっているため、権限が不足して実行できなくなっている可能性があるため、ASP 中間層を省略する方法はあまり有効ではありません。一般。
このプログラムは、Windows 2000 プラットフォームに基づいた IIS5.0 および IE6.0 で正常に実行されます。実際に使用する場合は、上記のコードを自分の Web ページにコピーするだけで、ページを更新せずにドメイン名クエリ機能を自分の Web ページに追加できます。ネームレジストラ Web サイトがサービスを提供します。
上記は、xmlhttp を使用して Web サイトにドメイン名クエリ機能を追加する方法の詳細な紹介です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。