ホームページ >バックエンド開発 >XML/RSS チュートリアル >xmlhttp を使用して Web サイトにドメイン名クエリ機能を追加するサンプル コードの共有
Web サイトを構築する準備をするときは、ドメイン名登録機関にインターネット ドメイン名を申請する必要があります。そのため、通常は、使用する予定のドメイン名が登録されているかどうかを確認する必要があります。 NIC Web サイト www.nic.net にアクセスし、「whois」リンクをクリックして、クエリする必要があるドメイン名を入力します必要な結果を得るために。
WHOIS サーバーは、Web サイトのドメイン名登録者、管理契約、連絡先情報 (電話、メール) を含む、.com、.net、.org の国際トップレベル ドメイン クエリに対するすべての Whois データを返します。 、アドレス)、請求先連絡先、テクニカル サポート、およびドメイン ネーム サーバー情報。これは、ユーザーが Web サイトの基本的な状況を理解するのに非常に役立ちます。多くのドメイン名登録 Web サイトには、通常、Whois (ドメイン名クエリ) の高度なサービスがありますが、個人の Web サイトには役立ちます。ドメイン名登録サービスを持っていないため、一般的な条件では Whois サービスを提供できません 実際、XMLHTTP プロトコルを使用して、各自が自分の個人 Web サイトでドメイン名詳細クエリ (WHOIS) サービスを提供できます。この記事では、ASP を使用して xmlhttpプログラミング を組み合わせてこの機能を実装する方法を紹介します。
原則は、主に RFC 954 によって提供される WHOIS プロトコルに基づいています。実装プロセスでは、独自の WEB サーバーを通じて NIC サイトの WHOIS にアクセスし、データベース サーバーが WHOIS データベースから必要なコンテンツをクエリし、それを Web ページに結合して、ASP を通じてクライアントに送り返します。同時に、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 '返回结果给客户端 %>
上記のプロセスでは、独自の WEB サーバーの ASP プログラムは実際には中間的な役割しか果たしていないことがわかります。実際のアプリケーションでは、この中間層を省略し、vbscript を使用して xmlhttp 経由で WHOIS データベースと直接データを送受信することもできます。ただし、この場合、IEの「(
他の)ドメインを介したデータリソースへのアクセス」が無効(デフォルト)になっているため、権限が不足して実行できない可能性があるため、ASP中間層を省略する方法が考えられます。あまり一般的ではありません。
このプログラムは、Windows 2000 プラットフォームに基づいた IIS5.0 および IE6.0 で正常に実行されます。実際に使用する場合は、上記のコードを自分の Web ページにコピーするだけで、ページを更新せずにドメイン名クエリ機能を自分の Web ページに追加できます。ネームレジストラ Web サイトがサービスを提供します。
以上がxmlhttp を使用して Web サイトにドメイン名クエリ機能を追加するサンプル コードの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。