利用XMLHTTP检测URL及探测服务器信息

主要利用了XMLHTTP的一些方法和属性来获取服务器的信息。
XMLHTTP 对象方法和对象属性附于本文后面。
关于状态码的问题,可以见我的另外一篇文档《互联网HTTP连接等出错代码大全》
http://www.csdn.net/Develop/Article/16/16477.shtm

<html>
<head>
<title>利用XMLHTTP检测URL及探测服务器信息</title>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<meta name="Generator" content="EditPlus">
<meta name="Author" content="JnKc">
<meta name="Keywords" content="">
</head>
<body>
请输入URL:<input type="text" id="jnkcInput" value="http://" size="40"><button id="chk">检测</button>
<div id="jnkc_show"></div>
<SCRIPT LANGUAGE="VBScript">
Dim i,jnkcUrl,jnkcHTML,jnkcStatus,jnkcServer
Function chk_onClick()
jnkcUrl = jnkcInput.value
Call GetDetail
i = i 1
jnkc_show.innerHTML = "<hr><pre><font color=red>" &;amp; i &;amp; "、" &;amp; jnkcUrl &;amp; "</font><br>" &;amp; jnkcStatus &;amp; "</pre>" &;amp; jnkc_show.innerHTML
End Function
Dim jnkcXMLHTTP
Sub GetDetail
Set jnkcXMLHTTP = CreateObject("Microsoft.XMLHTTP")
 jnkcXMLHTTP.OnReadyStateChange = GetRef("GetStatus")
 jnkcXMLHTTP.Open "GET", jnkcUrl, False
 On Error Resume Next
 jnkcXMLHTTP.Send
Set jnkcXMLHTTP = Nothing
End Sub
Sub GetStatus
If jnkcXMLHTTP.ReadyState <> 4 Then
 Exit Sub
End If
If jnkcXMLHTTP.Status = 404 Then
 jnkcStatus = "该网页不存在!"
ElseIf jnkcXMLHTTP.Status < 200 Then
 jnkcStatus = "客户端错误,信息:" &;amp; CStr(jnkcXMLHTTP.Status) &;amp; " " &;amp; jnkcXMLHTTP.StatusText
ElseIf jnkcXMLHTTP.Status < 300 Then
 jnkcStatus = "成功,该网页能访问。"
ElseIf jnkcXMLHTTP.Status < 400 Then
 jnkcStatus = "重定向,信息:" &;amp; CStr(jnkcXMLHTTP.Status) &;amp; " " &;amp; jnkcXMLHTTP.StatusText
ElseIf jnkcXMLHTTP.Status < 500 Then
 jnkcStatus = "客户端错误,信息:" &;amp; CStr(jnkcXMLHTTP.Status) &;amp; " " &;amp; jnkcXMLHTTP.StatusText
ElseIf jnkcXMLHTTP.Status < 600 Then
 jnkcStatus = "服务器错误,信息:" &;amp; CStr(jnkcXMLHTTP.Status) &;amp; " " &;amp; jnkcXMLHTTP.StatusText
Else
 jnkcStatus = "域名不可用或网络连接错误,信息:" &;amp; CStr(jnkcXMLHTTP.Status) &;amp; " " &;amp; jnkcXMLHTTP.StatusText
End If
If jnkcXMLHTTP.Status < 600 Then Call GetServer
End Sub
Sub GetServer
jnkcServer = jnkcXMLHTTP.GetResponseHeader("Server")
If jnkcServer <> "" Then
 jnkcStatus = jnkcStatus &;amp; "<br>HTTP服务器:" &;amp; jnkcServer
End If
jnkcStatus = "<b>" &;amp; jnkcStatus &;amp; "</b><br>所有反馈信息:<br>"&;amp; jnkcXMLHTTP.GetAllResponseHeaders
End Sub
</SCRIPT>
</body>
</html>

另附:

ServerXMLHTTP 对象方法

方法 说明
Abort 取消当前 HTTP 请求。
GetAllResponseHeaders 从响应信息中检索所有的标头字段(header fields)。
GetResponseHeader 从响应信息正文中获得一个 HTTP 标头值。
Open 打开一个与 HTTP 服务器的连接。
SetRequestHeader 设定一个请求的标头字段。
Send 向 HTTP 服务器发送请求。可包含正文。



ServerXMLHTTP 对象属性

属性 值 说明
OnReadyStateChange 事件处理器参考 仅用于异步操作。指定当就绪状态发生改变时(例如当数据从服务器上返回时)调用的事件处理器。
ReadyState 整型 说明异步操作的状态:未初始化(0),正在加载(1),已加载(2),交互(3),或者已完成(4)。
ResponseBody 变量数组 将响应信息正文作为数组返回。
ResponseStream Istream 将响应信息正文作为一个 ADO Stream 对象返回。
ResponseText 字符串 将响应信息正文作为一个文本字符串返回。
ResponseXML XMLDocument 对象 返回响应信息正文,并视为已被 MSXML XMLDOM 语法分析器分析过。
Status 长型 由服务器返回的 HTTP 状态码。
StatusText 字符串 HTTP 响应行状态。

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [XML] 的这些文章也感兴趣:

XML入门精解之结构与语法  了解WEB页面工具语言XML(四)应用分类
XML在语音中的应用  XML卷之实战锦囊(1):动态排序
概述IE和SQL2k开发一个XML聊天程序  使用XML+XSLT实现业务表单
XML介绍系列(6)  把HTML表单提交的数据转化成XML文件
XML教程—编写结构完整的XML文档  XML将走向何方
XML 中的常见问题 (一)  用XSL和ASP实现分页功能
建立MS XML 测试环境  Javascript 调用XML制作连动下拉框
掌握学习 XML 语法规则  用VB.NET和XPath简化XML导航
XML介绍系列(3)  XSL基础教程第五章
了解WEB页面工具语言XML(五)好处  亲密接触XML(7)- 元素 vs. 属性的使用