主要利用了XMLHTTP的一些方法和属性来获取服务器的信息。
XMLHTTP 对象方法和对象属性附于以下文档:
http://www.csdn.net/Develop/article/16/16493.shtm
关于状态码的问题,可以见我的一篇文档《互联网HTTP连接等出错代码大全》
http://www.csdn.net/Develop/Article/16/16477.shtm
以下是全部源代码:
1<html>
2<head>
3<title>利用XMLHTTP检测网址及探测服务器类型</title>
4<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
5<meta content="EditPlus" name="Generator"/>
6<meta content="JnKc" name="Author"/>
7<meta content="" name="Keywords"/>
8</head>
9<body>
10<input id="jnkcInput" size="50" type="text" value="http://www.csdn.net"/><button id="chk">检测</button>
11<div id="jnkc_show"></div>
12<script language="VBScript">
13Dim i,jnkcUrl,jnkcHTML,jnkcStatus,jnkcServer
14Function chk_onClick()
15jnkcUrl = jnkcInput.value
16Call GetDetail
17i = i+1
18jnkc_show.innerHTML = "<hr><pre><font color=red>" & i & "、" & jnkcUrl & "</font><br>" & jnkcStatus & "</pre>" & jnkc_show.innerHTML
19End Function
20Dim jnkcXMLHTTP
21Sub GetDetail
22Set jnkcXMLHTTP = CreateObject("Microsoft.XMLHTTP")
23jnkcXMLHTTP.OnReadyStateChange = GetRef("GetStatus")
24jnkcXMLHTTP.Open "GET", jnkcUrl, False
25On Error Resume Next
26jnkcXMLHTTP.Send
27Set jnkcXMLHTTP = Nothing
28End Sub
29Sub GetStatus
30If jnkcXMLHTTP.ReadyState <> 4 Then
31Exit Sub
32End If
33If jnkcXMLHTTP.Status = 404 Then
34jnkcStatus = "该网页不存在!"
35ElseIf jnkcXMLHTTP.Status < 200 Then
36jnkcStatus = "客户端错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText
37ElseIf jnkcXMLHTTP.Status < 300 Then
38jnkcStatus = "成功,该网页能访问。"
39ElseIf jnkcXMLHTTP.Status < 400 Then
40jnkcStatus = "重定向,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText
41ElseIf jnkcXMLHTTP.Status < 500 Then
42jnkcStatus = "客户端错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText
43ElseIf jnkcXMLHTTP.Status < 600 Then
44jnkcStatus = "服务器错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText
45Else
46jnkcStatus = "域名不可用或网络连接错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText
47End If
48If jnkcXMLHTTP.Status < 600 Then Call GetServer
49End Sub
50Sub GetServer
51jnkcServer = jnkcXMLHTTP.GetResponseHeader("Server")
52If jnkcServer <> "" Then
53jnkcStatus = jnkcStatus & "<br>HTTP服务器:" & jnkcServer
54End If
55jnkcStatus = "<b>" & jnkcStatus & "</b><br>所有反馈信息:<br>"& jnkcXMLHTTP.GetAllResponseHeaders
56End Sub
57</script>
58</body>
59</html>