手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

关于用ASP.Net识别远程主机服务器种类

来源:互联网 作者:west263.com 时间:2008-02-22
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

这几天做ASP.Net追捕,也算是我入门吧。思路很简单,主要就是识别远程主机传回的Banner,判断远程主机服务器。这可能不够准确,因为合格的管理员可能会去修改Banner。

代码如下(从我的Web追捕里找出来的,用VB.Net)

Dim swWriter As StreamWriter
'用以向网络基础数据流传送数据
Dim nsStream As NetworkStream
'创建发送数据的网络基础数据流
Dim tcpClient2 As TcpClient
'通过它实现向远程主机提出TCP连接申请
Dim sHostName As String
Dim srRead As StreamReader
'从网络基础数据流中读取数据
'HTTP服务追捕
If TcpConnect(ZSIP, 80) = "CG" Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:未知"
Try
'tcpClient = New TcpClient(IPAddress, Port)
tcpClient2 = New TcpClient(ZSIP.ToString(), 80)
tcpClient2.ReceiveTimeout = 1000000
tcpClient2.SendTimeout = 1000000
'对远程主机的8000端口提出TCP连接申请
nsStream = tcpClient2.GetStream()
'通过申请,并获取传送数据的网络基础数据流
swWriter = New StreamWriter(nsStream)
swWriter.WriteLine("Get /index.htm HTTP/1.1")
swWriter.WriteLine("Host:" & IP.Text)
swWriter.WriteLine("Accept:*/*")
swWriter.WriteLine("Referer:")
swWriter.WriteLine()
'刷新当前数据流中的数据
swWriter.Flush()
srRead = New StreamReader(nsStream, Encoding.Default)
'以得到的网络基础数据流来初始化StreamReader实例
Dim L As Integer = 0
Do While Not srRead.Peek = -1 And L < 20
StrHttp = StrHttp & srRead.ReadLine()
L = L 1
Loop
If InStr(StrHttp, "IIS") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:IIS 版本未知"
SystemFW = "WindowsNT/2000/XP/2003"
End If
If InStr(StrHttp, "Apache") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 版本未知"
End If
If InStr(StrHttp, "Netscape-Enterprise") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Netscape-Enterprise 版本未知"
End If
If InStr(StrHttp, "Microsoft-IIS/5.0") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:IIS 5.0"
SystemFW = "Windows2000"
End If
If InStr(StrHttp, "Microsoft-IIS/5.1") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:IIS 5.1"
SystemFW = "Windows2000/XP"
End If
If InStr(StrHttp, "Microsoft-IIS/6.0") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:IIS 6.0"
SystemFW = "Windows2003"
End If
If InStr(StrHttp, "Apache/2") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 2.x"
End If
If InStr(StrHttp, "Apache/2.0.54") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 2.0.54"
End If
If InStr(StrHttp, "Apache/2.0.52") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 2.0.52"
End If
If InStr(StrHttp, "Apache/2.1.6") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 2.1.6"
End If
If InStr(StrHttp, "Apache/1.3.2") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 1.3.x"
End If
If InStr(StrHttp, "Apache/1.3.20") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 1.3.20"
End If
If InStr(StrHttp, "Apache/1.3.23") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 1.3.23"
End If
If InStr(StrHttp, "Apache/1.3.26") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 1.3.26"
End If
If InStr(StrHttp, "Apache/1.3.27") > 0 Then
OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 1.3.27"
End If
If InStr(StrHttp, "Apache/1.3.33") > 0 Then

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!