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

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航