打印本文 打印本文 关闭窗口 关闭窗口
关于用ASP.Net识别远程主机服务器种类
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1601  更新时间:2009/4/23 10:40:29  文章录入:mintao  责任编辑:mintao

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

[1] [2]  下一页

打印本文 打印本文 关闭窗口 关闭窗口