WEB开发网
开发学院WEB开发ASP.NET 关于用ASP.Net识别远程主机服务器种类 阅读

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

 2005-07-28 17:01:06 来源:WEB开发网   
核心提示:这几天做asp.net追捕,也算是我入门吧,关于用ASP.Net识别远程主机服务器种类,思路很简单,主要就是识别远程主机传回的Banner,并获取传送数据的网络基础数据流 swWriter = New StreamWriter(nsStream) swWriter.WriteLine("Get /inde

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

因为是摘出来的,所以有的变量没有定义,大家自己去琢磨吧。
ZSIP:分析出的真实IP

Tags:关于 ASP Net

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接