主要利用了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>" & i & "、" & jnkcUrl & "</font><br>" & jnkcStatus & "</pre>" & 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 = "客户端错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText ElseIf jnkcXMLHTTP.Status < 300 Then jnkcStatus = "成功,该网页能访问。" ElseIf jnkcXMLHTTP.Status < 400 Then jnkcStatus = "重定向,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText ElseIf jnkcXMLHTTP.Status < 500 Then jnkcStatus = "客户端错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText ElseIf jnkcXMLHTTP.Status < 600 Then jnkcStatus = "服务器错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText Else jnkcStatus = "域名不可用或网络连接错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText End If If jnkcXMLHTTP.Status < 600 Then Call GetServer End Sub Sub GetServer jnkcServer = jnkcXMLHTTP.GetResponseHeader("Server") If jnkcServer <> "" Then jnkcStatus = jnkcStatus & "<br>HTTP服务器:" & jnkcServer End If jnkcStatus = "<b>" & jnkcStatus & "</b><br>所有反馈信息:<br>"& 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 响应行状态。 | 
|