繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> 关于用ASP.Net识别远程主机服务器种类

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

2007-10-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:这几天做ASP.Net追捕,也算是我入门吧。思路很简单,主要就是识别远程主机传回的Banner, 判断远程主机服务器。这可能不够准确,因为合格的管理员可能会去修改Banner。 代码如下(从我的Web追捕里找出来的,用VB...

这几天做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 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

OppHTTP.Text = "HTTP服务已开启!服务软件类型:Apache 1.3.33"

End If

If InStr(StrHttp, "Netscape-Enterprise/4.1") > 0 Then

OppHTTP.Text = "HTTP服务已开启!服务软件类型:Netscape-Enterprise 4.1"

End If

If InStr(StrHttp, "Unix") > 0 Then

SystemFW = "类Unix/Linux系统"

End If

Catch

End Try

因为是摘出来的,所以有的变量没有定义,大家自己去琢磨吧。

责任编辑:admin
相关文章