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

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

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

DimswWriterAsStreamWriter
'用以向网络基础数据流传送数据
DimnsStreamAsNetworkStream
'创建发送数据的网络基础数据流
DimtcpClient2AsTcpClient
'通过它实现向远程主机提出TCP连接申请
DimsHostNameAsString
DimsrReadAsStreamReader
'从网络基础数据流中读取数据
'HTTP服务追捕
IfTcpConnect(ZSIP,80)="CG"Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:未知"
Try
'tcpClient=NewTcpClient(IPAddress,Port)
tcpClient2=NewTcpClient(ZSIP.ToString(),80)
tcpClient2.ReceiveTimeout=1000000
tcpClient2.SendTimeout=1000000
'对远程主机的8000端口提出TCP连接申请
nsStream=tcpClient2.GetStream()
'通过申请,并获取传送数据的网络基础数据流
swWriter=NewStreamWriter(nsStream)
swWriter.WriteLine("Get/index.htmHTTP/1.1")
swWriter.WriteLine("Host:"&IP.Text)
swWriter.WriteLine("Accept:*/*")
swWriter.WriteLine("Referer:")
swWriter.WriteLine()
'刷新当前数据流中的数据
swWriter.Flush()
srRead=NewStreamReader(nsStream,Encoding.Default)
'以得到的网络基础数据流来初始化StreamReader实例
DimLAsInteger=0
DoWhileNotsrRead.Peek=-1AndL<20
StrHttp=StrHttp&srRead.ReadLine()
L=L+1
Loop
IfInStr(StrHttp,"IIS")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:IIS版本未知"
SystemFW="WindowsNT/2000/XP/2003"
EndIf
IfInStr(StrHttp,"Apache")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache版本未知"
EndIf
IfInStr(StrHttp,"Netscape-Enterprise")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Netscape-Enterprise版本未知"
EndIf
IfInStr(StrHttp,"Microsoft-IIS/5.0")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:IIS5.0"
SystemFW="Windows2000"
EndIf
IfInStr(StrHttp,"Microsoft-IIS/5.1")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:IIS5.1"
SystemFW="Windows2000/XP"
EndIf
IfInStr(StrHttp,"Microsoft-IIS/6.0")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:IIS6.0"
SystemFW="Windows2003"
EndIf
IfInStr(StrHttp,"Apache/2")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache2.x"
EndIf
IfInStr(StrHttp,"Apache/2.0.54")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache2.0.54"
EndIf
IfInStr(StrHttp,"Apache/2.0.52")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache2.0.52"
EndIf
IfInStr(StrHttp,"Apache/2.1.6")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache2.1.6"
EndIf
IfInStr(StrHttp,"Apache/1.3.2")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache1.3.x"
EndIf
IfInStr(StrHttp,"Apache/1.3.20")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache1.3.20"
EndIf
IfInStr(StrHttp,"Apache/1.3.23")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache1.3.23"
EndIf
IfInStr(StrHttp,"Apache/1.3.26")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache1.3.26"
EndIf
IfInStr(StrHttp,"Apache/1.3.27")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache1.3.27"
EndIf
IfInStr(StrHttp,"Apache/1.3.33")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Apache1.3.33"
EndIf
IfInStr(StrHttp,"Netscape-Enterprise/4.1")>0Then
OppHTTP.Text="HTTP服务已开启!服务软件类型:Netscape-Enterprise4.1"
EndIf
IfInStr(StrHttp,"Unix")>0Then
SystemFW="类Unix/Linux系统"
EndIf
Catch
EndTry

时间: 2024-10-03 16:32:43

用ASP.Net识别远程主机服务器种类的相关文章

服务器种类繁多 我们网站应该如何选择放置

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 现在可以选择放站的服务器种类繁多,有虚拟主机,服务器合租,整台服务器.到底什么样的网站适合于什么样的服务器种类呢?定好服务器后又要选择什么样的机房进行托管呢?现在机房大致分为三类,电信机房,网通机房,铁通机房,当然联系到你的也有可能是这些机房的代理商. 如果你做的是一个企业站或者个人站,用ASP或者ASP.NET语言编写的静态网页,Acces

如何用asp.net向其他服务器post一条信息

asp.net|服务器 摘要:如何用asp.net向其他服务器post一条信息using System;using System.Web;using System.Net;using System.IO;using System.Text;namespace SendMessage{ public bool SendMsg(MsgInfo msg){//create requesttry{WebRequest req = WebRequest.Create("http://your_post_u

《圣殿祭司的ASP.NET4.0专家技术手册》----1-15 将ASP.NET程序开发服务器Port固定的技巧

1-15 将ASP.NET程序开发服务器Port固定的技巧 圣殿祭司的ASP.NET4.0专家技术手册 如果项目以"文件系统"建立,则网页执行时会使用Visual Studio内建的"ASP.NET程序开发服务器",这样便解决了操作系统无IIS服务器的困扰,但有的人问:"能否将Port固定下来?"因为变动的Port,有时要以完整路径引用参考目录下的照片或CSS设置就会产生困扰(如/Images/Pic01.jpg或/Css/WebSite.css

asp.net 部署IIS6 服务器编译器错误消息: BC30137:

问题描述 asp.net 部署IIS6 服务器编译器错误消息: BC30137: 编译器错误消息: BC30137: 保存临时 Win32 资源文件"C:WINDOWSTEMPvbcC8.tmp"时出错: 另一个程序正在使用此文件,进程无法访问. 服务器上查找并不存在C:WINDOWSTEMPvbcC8.tmp 该文件,却无法编译成功 解决方案 解决方案:?1 设置c:windowstemp 目录访问权限 temp--> 属性-->安全-- > 添加network s

asp.net实现A服务器给B服务器发送一个http请求,B接收成功,要返回给A,是如何实现的,他们之间是如何传参的那位大哥知道的能不能给小弟共享下代码

问题描述 asp.net实现A服务器给B服务器发送一个http请求,B接收成功,要返回给A,是如何实现的,他们之间是如何传参的那位大哥知道的能不能给小弟共享下代码或者分享下你们知道的网站地址 解决方案 解决方案二:用户登录吗?比如A站是登陆站,B站是应用站B站点击某个需要登录才能用的功能的时候跳转到A站,A站登录完成后:更新用户登录表中的某个字段值(比如session值,用来标识用户登录成功的一些东西),然后跳转到来源站某个登录验证页面,来源站接收到传递过来的session值,检测通过后,写入到

ASP脚本组件实现服务器重启_应用技巧

大家知道直接使用ASP是不能够重启服务器的,这时我们需要制作一个组件来实现功能,ASP通过这个组件调用系统API,然后按照不同的重启和关机方式进行操作! 下面先说COM的制作,在VB中新建一工程,当然是AceiveX dll的. 1)先修改工程属性,在工程属性窗口将工程名称改为system,在类模块窗口将模块名称改为contral,保存工程; 2)然后添加一个模块,用来声明需要使用的API和常数,下面是模块中的内容.Declare Function ExitWindowsEx Lib "user

海鑫科金推出人脸识别视频服务器

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集.人脸定位.人脸识别预处理.身份确认以及身份查找等:而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统. 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体.生物特征识别技术所研究的生物特征包括脸.指纹.手掌纹.虹膜.视网膜.声音(语音).体形.个人习惯(例如敲击键盘的力度和频率.签字)等,相应的识别技术就有人脸识别.指纹识别.掌纹识别.虹膜识

ASP脚本组件实现服务器重启

大家知道直接使用ASP是不能够重启服务器的,这时我们需要制作一个组件来实现功能,ASP通过这个组件调用系统API,然后按照不同的重启和关机方式进行操作! 下面先说COM的制作,在VB中新建一工程,当然是AceiveX dll的. 1)先修改工程属性,在工程属性窗口将工程名称改为system,在类模块窗口将模块名称改为contral,保存工程; 2)然后添加一个模块,用来声明需要使用的API和常数,下面是模块中的内容. Declare Function ExitWindowsEx Lib "use

巧用ASP脚本命令重启服务器

大家知道直接使用ASP是不能够重启服务器的,这时我们需要制作一个组件来实现功能,ASP通过这个组件调用系统API,然后按照不同的重启和关机方式进行操作! 下面先说COM的制作,在VB中新建一工程,当然是AceiveX dll的! 1)先修改工程属性,在工程属性窗口将工程名称改为system,在类模块窗口将模块名称改为contral,保存工程; 2)然后添加一个模块,用来声明需要使用的API和常数!下面是模块中的内容! Declare Function ExitWindowsEx Lib "use