閱讀518 返回首頁    go 阿裏雲 go 技術社區[雲棲]


用ASP.Net識別遠程主機服務器種類

這幾天做ASP.Net追捕,也算是我入門吧。思路很簡單,主要就是識別遠程主機傳回的Banner,判斷遠程主機服務器。這可能不夠準確,因為合格的管理員可能會去修改Banner。

代碼如下(從我的Web追捕裏找出來的,用VB.Net)

DimswWriterAsStreamWriter
'用以向網絡基礎數據流傳送數據
DimnsStreamAsNetworkStream
'創建發送數據的網絡基礎數據流
DimtcpClient2AsTcpClient
'通過它實現向遠程主機提出TCP連接申請
DimsHostNameAsString
DimsrReadAsStreamReader
'從網絡基礎數據流中讀取數據
'HTTP服務追捕
IfTcpConnect(ZSIP,80)="CG"Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:未知"
Try
'tcpClient=NewTcpClient(IPAddress,Port)
tcpClient2=NewTcpClient(ZSIP.ToString(),80)
tcpClient2.ReceiveTimeout=1000000
tcpClient2.SendTimeout=1000000
'對遠程主機的8000端口提出TCP連接申請
nsStream=tcpClient2.GetStream()
'通過申請,並獲取傳送數據的網絡基礎數據流
swWriter=NewStreamWriter(nsStream)
swWriter.WriteLine("Get/index.htmHTTP/1.1")
swWriter.WriteLine("Host:"&IP.Text)
swWriter.WriteLine("Accept:*/*")
swWriter.WriteLine("Referer:")
swWriter.WriteLine()
'刷新當前數據流中的數據
swWriter.Flush()
srRead=NewStreamReader(nsStream,Encoding.Default)
'以得到的網絡基礎數據流來初始化StreamReader實例
DimLAsInteger=0
DoWhileNotsrRead.Peek=-1AndL<20
StrHttp=StrHttp&srRead.ReadLine()
L=L+1
Loop
IfInStr(StrHttp,"IIS")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:IIS版本未知"
SystemFW="WindowsNT/2000/XP/2003"
EndIf
IfInStr(StrHttp,"Apache")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache版本未知"
EndIf
IfInStr(StrHttp,"Netscape-Enterprise")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Netscape-Enterprise版本未知"
EndIf
IfInStr(StrHttp,"Microsoft-IIS/5.0")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:IIS5.0"
SystemFW="Windows2000"
EndIf
IfInStr(StrHttp,"Microsoft-IIS/5.1")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:IIS5.1"
SystemFW="Windows2000/XP"
EndIf
IfInStr(StrHttp,"Microsoft-IIS/6.0")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:IIS6.0"
SystemFW="Windows2003"
EndIf
IfInStr(StrHttp,"Apache/2")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache2.x"
EndIf
IfInStr(StrHttp,"Apache/2.0.54")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache2.0.54"
EndIf
IfInStr(StrHttp,"Apache/2.0.52")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache2.0.52"
EndIf
IfInStr(StrHttp,"Apache/2.1.6")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache2.1.6"
EndIf
IfInStr(StrHttp,"Apache/1.3.2")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache1.3.x"
EndIf
IfInStr(StrHttp,"Apache/1.3.20")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache1.3.20"
EndIf
IfInStr(StrHttp,"Apache/1.3.23")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache1.3.23"
EndIf
IfInStr(StrHttp,"Apache/1.3.26")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache1.3.26"
EndIf
IfInStr(StrHttp,"Apache/1.3.27")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache1.3.27"
EndIf
IfInStr(StrHttp,"Apache/1.3.33")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Apache1.3.33"
EndIf
IfInStr(StrHttp,"Netscape-Enterprise/4.1")>0Then
OppHTTP.Text="HTTP服務已開啟!服務軟件類型:Netscape-Enterprise4.1"
EndIf
IfInStr(StrHttp,"Unix")>0Then
SystemFW="類Unix/Linux係統"
EndIf
Catch
EndTry

最後更新:2017-04-02 00:06:35

  上一篇:go ASP.NET創建Web服務之設計方針
  下一篇:go 通過探測郵件服務器進行Email地址有效性檢驗