top
Loading...
域名登記查詢(whois)很復雜嗎--方法一
jjx原創,轉載必須注明出處
要復制代碼,請使用論壇的“復制“功能完成
chinaasp的域名查詢要賣1000元,網友提了意見,卻被呂科一句(你把他封裝成組件試試?)給擋了回去。域名登記查詢(whois)真的很復雜嗎?

域名登記查詢主要是通過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不太可能完成的事情,比方像網易一樣真正無刷新的聊天室,大家仔細研究研究吧

北斗有巢氏 有巢氏北斗