主要利用了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 響應行狀態。