| 用ASP解决域名登记查询 |
|
作者:未知 文章来源:http://www.21blue.com 点击数: 更新时间:2005-6-28  |
|
方法一: 域名登记查询主要是通过whois服务器来完成的,当前比较常用的是rs.internic.net,通过它可以查询各种国际域名是否注册。whois的端口通常是43。利用winsock,你可以在asp简单的实现这个功能 asp不同于php/jsp,winsock功能并不内置,所以必须借助第三方的winsock组件。 这里的举例使用了serverobjects的aspsock,代码的注释比较详细,大家可以举一翻三 aspsock不是免费的,需要$49,如果需要免费的大家可以自己封装vb6中的winsock控件 或从这个地址下载免费的 Xceed Winsock Library v1.1 ftp://ftp.xceedsoft.com/pub/xceedwsl.exe 该组件的主页是 http://www.xceedsoft.com/ whois.asp ------------------------------------------- <%@ Language=VBScript %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> </HEAD> <BODY> <form action=whois.asp method=post> 域名:www<B>.</B> <INPUT size=8 name=domainname value="<% =request("domainname") %>">. <SELECT name=ext> <OPTION selected>com</OPTION> <OPTION>net</OPTION> <OPTION>org</OPTION> </SELECT> <INPUT class=input1 type=submit value=域名查询 name=Submit> </form> <% dim strResult if Request.ServerVariables("request_method")="POST" THEN dim strQuery '取得需要查询的域名 strQuery=request("domainname") & "." & request("ext") dim objSock '创建sock对象 Set objSock=Server.CreateObject("Aspsock.conn") '设置whois服务器为rs.internic.net objSock.RemoteHost="rs.internic.net" '设置whois服务器端口为43 objSock.Port=43 '设置操作的超时为60秒 objSock.TimeOut=60 '打开与remotehost的连接,返回真为成功 if objSock.Open then '发出查询 WriteLn表示用vbCrlf终结(strQuery & vbCRlf) objSock.WriteLn strQuery '读取返回值,最大长度为65535 strResult=objSock.ReadBytesAsString(65535) '关闭连接 objSock.Close '打印查询结果,你可以需要对此作些处理 Response.Write "<b>查询结果</b><br><textarea rows=10 cols=60>" & strResult & "</textarea>" end if Set objSock=Nothing end if %> </BODY> </HTML> 利用winsock可以完成许多asp不太可能完成的事情,比方像网易一样真正无刷新的聊天室,大家仔细研究研究吧 方法二: <%@ Language=VBScript %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> </HEAD> <BODY> <form action=whois.asp method=post> 域名:www<B>.</B> <INPUT size=8 name=domainname value="<% =request("domainname") %>">. <SELECT name=ext> <OPTION selected>com</OPTION> <OPTION>net</OPTION> <OPTION>org</OPTION> <OPTION>com.cn</OPTION> <OPTION>net.cn</OPTION> <OPTION>org.cn</OPTION> </SELECT> <INPUT class=input1 type=submit value=域名查询 name=Submit> </form> <% dim strResult if Request.ServerVariables("request_method")="POST" THEN dim strQuery '取得需要查询的域名 strQuery=request("domainname") & "." & request("ext") dim objSock '创建sock对象 Set objSock=Server.CreateObject("Aspsock.conn") '设置whois服务器为rs.internic.net select case request("ext") case "com","net","org" objSock.RemoteHost="rs.internic.net" gj=0 case "com.cn","net.cn","org.cn" objSock.RemoteHost="drop.cnnic.net.cn" gj=1 end select '设置whois服务器端口为43 objSock.Port=43 '设置操作的超时为60秒 objSock.TimeOut=60 '打开与remotehost的连接,返回真为成功 if objSock.Open then '发出查询 WriteLn表示用vbCrlf终结(strQuery & vbCRlf) objSock.WriteLn strQuery '读取返回值,最大长度为65535 strResult=objSock.ReadBytesAsString(65535) '关闭连接 objSock.Close '打印查询结果,你可以需要对此作些处理 ' Response.Write "<b>查询结果</b><br><textarea rows=10 cols=60>" & strResult & "</textarea>" select case gj case "0" str1=inter(strresult) response.write str1 Response.Write "<b>查询结果</b><br><textarea rows=10 cols=60>" & strResult & "</textarea>" case "1" str1=cnnic(strresult) response.write str1 Response.Write "<b>查询结果</b><br><textarea rows=10 cols=60>" & strResult & "</textarea>" end select end if Set objSock=Nothing end if function inter(str) if instr(str,"No match")=0 then response.write "您的域名已经被注册。" else response.write "您的域名没有被注册。" end if end function function cnnic(str) if instr(str,"%")=0 then response.write "您的域名已经被注册。" else response.write "您的域名没有被注册。" end if end function %> </BODY> </HTML>
|
| 论文(www.21blue.com)录入:admin 责任编辑:admin |
|
上一篇论文: 最新的ASP、IIS安全漏洞
下一篇论文: 介绍一种效率极高的分类算法 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |