用VB.net和ASP.net實現(xiàn)Whois.aspx查詢系統(tǒng)
[原創(chuàng)]用VB.net和ASP.net實現(xiàn)Whois.aspx查詢系統(tǒng)文章標題:[原創(chuàng)]用VB.net和ASP.net實現(xiàn)Whois.aspx查詢系統(tǒng)頂部 dream2fly 發(fā)布于:2006-04-
[原創(chuàng)]用VB.net和ASP.net實現(xiàn)Whois.aspx查詢系統(tǒng)
文章標題:[原創(chuàng)]用VB.net和ASP.net實現(xiàn)Whois.aspx查詢系統(tǒng)頂部 dream2fly 發(fā)布于:2006-04-0218:08 [樓主][原創(chuàng)]用VB.net和ASP.net實現(xiàn)Whois.aspx查詢系統(tǒng)
信息來源:邪惡八進制信息安全團隊(www.eviloctal.com)
文章作者:swords[E.S.T]
你想知道是誰在攻擊你嗎?你想知道網站的所有者嗎?你想進行旁注攻擊嗎?這一切可以用一個工具輕松搞定----whois查詢。(先吹下)今天我將讓你看怎樣實現(xiàn)所謂WHOIS,用vb.net和ASP.NET書寫Whois.Aspx查詢系統(tǒng),來簡單實現(xiàn)whois查詢的功能,希望能夠拋磚引玉。
關于WHOIS
WHOIS既是一種協(xié)議,也是一種服務,使用WHOIS,就能透過Internet查詢域名可用性,或者查明誰擁有這個域名,獲知該域的已注冊擁有者的信息(包括姓名、地址、聯(lián)系信息等等),那我們就來看看如何在.NET框架中實現(xiàn)WHOIS。
一般來說,每當你做WHOIS查找時,你詢問登記信息被保存的某種數據庫。不過,WHOIS數據庫沒被集中,因此實際域記錄一般不可以從一臺單個的WHOIS服務器中獲得(記錄域名的組織管理WHOIS服務器)。
通常,WHOIS服務器在43端口上通過TCP接受連接,因此如果我們使用這個端口,我們就能與服務器聯(lián)系。我有一份WHOIS服務器的詳細一覽表,請訪問http://wmjie.51.net/swords/blog/index.php?action=show&id=104
導入.NET名字空間
.Netframework提供了一個TcpClient類(System.Net.Socketsnamespace),屬于System.Net.Sockets名稱空間,TcpClient類對TCP操作進行了抽象化,因而通過指定的TCP43端口建立連接、發(fā)送TCP請求和獲取TCP返回值等操作都被簡化了。用它我們就可以來連接WHOIS服務器直接獲取域名注冊信息。
首先我們需要用Imports語句導入System,,System.Net,System.IO和System.Net.Sockets名字空間:
<@ImportNamespace=System>
<@ImportNamespace=System.Net>
<@ImportNamespace=System.IO>
<@ImportNamespace=System.Net.Sockets>
連接whois服務器
TcpClient類提供了連接connecting,發(fā)送sending和接受receiving數據的方法,有兩種方法可以連接遠程服務器:
法一:初始化一個無參數的TcpClient類,然后再提供主機名和端口用Connect方法連接
DimWhoIsClientAsNewTcpClient()
WhoIsClient.Connect(request.form("WhoisServer"),43)
法二:直接用主機名和端口初始化TcpClient,這樣會進行自動化連接:
DimWhoIsClient=newTcpClient(request.form("WhoisServer"),43)
開始發(fā)出查詢
在我們已經成功連接WHOIS服務器之后,下一步將送出我們的域名查詢。
首先我們定義一個字符串變量Hostname,它接受我們想要查的域名。注意,我們一定要在末尾加上vbcrlf,因為那是WHOIS服務器期望的形式(如果不加vbcrlf,相當于回車,則會進入假死狀態(tài).如果用c#編寫,一定要在