当前位置: 首页 > 图文教程 > 网络编程 > ASP > 使用xml http为网站增加域名查询功能

ASP
对连串英文自动换行的解决方法 IE5.5
怎样写你自己的EMAIL组件(原理)
ASP中有关timeout超时的体会
用ASP实现从SQL Server导出数据到Access
ASP向NT域中加一个用户
ASP乱码的解决方法
关于 aspsmartupload 注册问题
利用XML不离开页面刷新数据
IIS 处理 SEARCH 请求漏洞
不用组件实现上载功能(1)
不用组件实现上载功能(2)
在网页中实现OICQ里的头像选择的下拉框
仅用xsl和asp实现分页功能
如何使用context()方法将数据置入表格(XML)
利用ASP从远程服务器上接收XML数据
将数据库里面的内容生成EXCEL
怎样在ASP里面创建统计图表
加密你的Access数据库
利用global.asp定时执行ASP
加密QueryString数据

ASP 中的 使用xml http为网站增加域名查询功能


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 102 ::
收藏到网摘: n/a

当我们准备建立一个Web站点时,就必须向域名登记机构申请一个Internet域名,因此,我们通常希望了解自己准备使用的域名是否已经被注册,这时,可以访问NIC站点http://www.nic.net,点击"whois"链接后输入需查询的域名,就可以得到我们需要的结果。

WHOIS服务器为 .com、.net 和 .org 的国际顶级域名的查询返回全部的 whois 数据,包括网站域名注册人、管理合约、联系方式(电话、电子邮件、地址)、帐单联络、技术支持和域名服务器信息,对于用户了解一个网站的基本情况很有帮助。在很多域名注册服务商的网站中,通常都有whois(域名查询)的高级服务,但个人网站因为不具备域名注册服务商的资格和数据,所以在一般条件下无法提供whois服务。

其实,利用XMLHTTP协议,我们每个人都可以在自己的个人网站中提供域名详细情况查询(WHOIS)服务,本文介绍了如何使用ASP结合xmlhttp编程来实现这个功能。

一、原理

原理非常简单,域名的查询主要是基于RFC 954提供的WHOIS协议。在实现过程中,我们通过自己的WEB服务器访问NIC站点的WHOIS数据库服务器,从WHOIS数据库中查询我们所需要的内容,然后通过ASP组合成网页回送给客户端。

同时,我们使用xmlHttp协议实现客户端网页无刷新效果以及向服务端提出检索WHOIS数据的要求。

具体流程为:客户端通过xmlhttp提出域名查询要求-->WEB服务器中的ASP侦听页接受请求后使用xmlhttp向WHOIS服务器发送检索命令-->WHOIS数据库执行查询操作,返回结果给我们自己的WEB服务器(html形式)-->WEB服务器接收到内容后,立即将结果传送给客户端->客户端浏览器使用vbscript过滤掉HTML多余部分,挑选出whois数据显示出来。

二、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"