欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【关于用ASP.Net识别远程主机服务器种类】,下面是详细的分享!
关于用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
因为是摘出来的,所以有的变量没有定义,大家自己去琢磨吧。
ZSIP:分析出的真实IP
以上所分享的是关于关于用ASP.Net识别远程主机服务器种类,下面是编辑为你推荐的有价值的用户互动:
相关问题:什么是远程登录?有几种方式?
答:1,一般用免费的域名解析服务。现在很少人用了,主要原因是压缩率不高,做不了实时,而且对带宽要求较高,再加上近年来新产品的冲击和失去了价格优势。现就是还要一台电脑做主机。 2,模拟摄像机+硬盘录像机(DVR)这种方式目前还是有很多人在采... >>详细
相关问题:开发动态网站,不安装本地网站服务器,直接上传到...
答:静态网页是指内容是固定的,修改和更新都必须要通过专用的网页制作工具,比如Dreamweaver、Frontpage等,而且只要修改了网页中的一个字符或一个图片都要重新上传一次覆盖原来的页面。 静态网页只供用户浏览网页内容而不可以根据用户的要求和选择... >>详细
相关问题:asp.net中获取远程客户端主机的IP地址
答:没有问题,程序从上往下执行来看。 string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 首先使用上面这句获取IP值,这是优先取得代理IP。 第一个IF是判断如果从这个代理IP方法没有获取到IP,则使用下一个获... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
