VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网站开发 > ASPnet >
  • asp.net教程之用ASP解决域名登记查询

作者: jjx,voodoo 
  方法一: 

域名登记查询主要是通过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>

相关教程