工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 微软开发专栏 > Visual Studio.net专栏 > XML > 正文
使用xmlhttp为网站增加域名查询功能
[文章信息]
作者:fsdos
时间:2004-11-11
出处:天极网
责任编辑:方舟
[文章导读]
当我们准备建立一个Web站点时,就必须向域名登记机构申请一个Internet域名,因此,我们通常希望了解自己准备使用的域名是否已经被注册
advertisement
热点推荐
· Java加密和数字签名编程快速入门
· 在VB6中用命令行为模式控制GUI动作
· Excel图表向导详解
· 浅析各种计算机病毒应对方法
· 2月16日软件精选 春节文章精彩回顾
[正文]
  当我们准备建立一个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=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中间层的方法并不太通用。

  本程序在基于Windows2000平台的IIS5.0和IE6.0上运行通过。实际使用过程中,可以把上述代码拷贝到自己网页中,经过简单的页面编辑,就可在自己的网页中增加在页面无刷新情况下的域名查询功能了,初看上去,还真的有点象专业的域名注册服务商网站提供的服务了。


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • 使用.NET存储XML数据
  • 中兴携手阿尔卡特 全球逐鹿CDMA
  • 用友总裁王文京:誓将ERP变成“大众消费”
  • 香港消费者委员会:数码相机最贵未必最好
  • 外电称中兴正评估西门子手机业务 或能并购
  • 国信办督战八大行业灾难备份 将出台国家标准
  • 中国IT企业走进欧盟 搭第六框架计划直通车
  • 美邦银行用户注意 警惕新型“钓鱼”邮件
  • 微软三年时间磨出新IE 具有更强大安全性能
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 老板电话
    冲动的惩罚 七里香
    我不是黄蓉 女生撒娇
    盛夏的果实 坚持到底
    孤单北半球 眉飞色舞
    挪威的森林 可爱女人
    最浪漫的事 老板电话

    CSEEK搜索