主要利用了XMLHTTP的一些方法和屬性來擷取伺服器的資訊。
XMLHTTP 對象方法和對象屬性附於以下文檔:
http://www.csdn.net/Develop/article/16/16493.shtm
關於狀態代碼的問題,可以見我的一篇文檔《互連網HTTP串連等出錯代碼大全》
http://www.csdn.net/Develop/Article/16/16477.shtm
以下是全部原始碼:
<html>
<head>
<title>利用XMLHTTP檢測網址及探測伺服器類型</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>
<input type="text" id="jnkcInput" value="http://www.csdn.net" size="50"><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>