怎样判断某个网站是可以访问的

bug_zj 2002-05-14 11:17:57
我做了个网站导航想在其中加入一项功能:判断某个网站是否是通的,即此网站是可以被访问的.这样可以节省访问者的时间.有什么好方法吗?
...全文
97 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2002-06-08
  • 打赏
  • 举报
回复
oServerXMLHTTPRequest.setTimeouts(resolveTimeout, connectTimeout,
sendTimeout, receiveTimeout);

Parameters

resolveTimeout
A long integer. The value is applied to mapping host names (such as "www.microsoft.com") to IP addresses; the default value is infinite, meaning no timeout.

connectTimeout
A long integer. The value is applied to establishing a communication socket with the target server, with a default timeout value of 60 seconds.

sendTimeout
A long integer. The value applies to sending an individual packet of request data (if any) on the communication socket to the target server. A large request sent to a server will normally be broken up into multiple packets; the send timeout applies to sending each packet individually. The default value is 5 minutes.

receiveTimeout
A long integer. The value applies to receiving a packet of response data from the target server. Large responses will be broken up into multiple packets; the receive timeout applies to fetching each packet of data off the socket. The default value is 60 minutes.

status = 200 表明成功
bug_zj 2002-06-07
  • 打赏
  • 举报
回复
this way is right,thank you ,and all the points are yours.by the way ,can you tell me what's meaning of the parameters 60000,60000,300000,3600000 and obj.Status = 200 ,may i change them?
saucer 2002-06-07
  • 打赏
  • 举报
回复
try

<%
set obj = server.createObject("MSXML2.ServerXMLHTTP.4.0")
On Error Resume Next
obj.setTimeouts 60000,60000,300000,3600000
obj.Open "HEAD","http://www.mss2xxx.com",FALSE
obj.Send

if Err.Number <> 0 then
Response.Write Err.Description
else
if obj.Status = 200 then
Response.Write "Up"
else
Response.Write "maybe down, returned status:" & obj.Status
end if
end if
set obj = nothing
%>
saucer 2002-06-07
  • 打赏
  • 举报
回复
hahaha, you are right, MSXML2.ServerXMLHTTP.4.0 always gives me "UP". Apparently, Microsoft introduced a bug into MSXML4. But MSXML2.ServerXMLHTTP.3.0 gives "Down or invalid address". the default MSXML parser on my machine is MSXML3, that is why I got the right result
bug_zj 2002-06-07
  • 打赏
  • 举报
回复
我记得你上次让我用set obj = server.createObject("MSXML2.ServerXMLHTTP.4.0")
是MSXML2.ServerXMLHTTP.4.0
如果用set obj = server.createObject("MSXML2.ServerXMLHTTP")的话提示:
"无效的 ProgID。 若要获取关于此消息的更多的信息,请访问 Microsoft 联机支持站点: http://www.microsoft.com/contentredirect.asp "
而且我按你的提示已经装了:MSXML4.0.
是不是还要装其它东西.
saucer 2002-06-07
  • 打赏
  • 举报
回复
no way, if you try

<%
set obj = server.createObject("MSXML2.ServerXMLHTTP")
On Error Resume Next
obj.setTimeouts 60000,60000,300000,3600000
obj.Open "HEAD","http://www.mss22xxx.com",FALSE
obj.Send
if obj.Status = 200 then
Response.Write "up"
else
Response.Write "Down or invalid address"
end if
set obj = nothing
%>

you will get
"Down or invalid address"
bug_zj 2002-06-07
  • 打赏
  • 举报
回复
saucer(思归) :
你的方法用了以后,好像无论网站通不通,都显示'UP'

net_lover(孟子E章):
你的方法有个缺点:如果网站不能的话,则会显示'无法显示此页',如何才能显示'Down or invalid address'呢?

tonnycncn(托尼)(stady.51.net):
你的方法看不懂.

tonnycncn 2002-05-15
  • 打赏
  • 举报
回复
<script>
tim=1
setInterval("tim++",100)
b=1
var autourl=new Array()
autourl[1]="http://stady.51.net/"

function butt(){
document.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)document.write("<input type=text name=txt"+i+" size=10 value=测试中…… class=buttonface>==><input type=text name=url"+i+" size=60 class=buttonface><br>")
document.write("<input type=button value=重新测试速度 onclick=top.location=self.location class=buttonface></form>")
}
butt()
function auto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="链接超时"}
else
{document.forms[0]["txt"+b].value="时间"+tim/10+"秒"}
b++
}
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src="+autourl[ i ]+"/"+Math.random()+" width=1 height=1 onerror=auto('"+autourl[ i ]+"')>")}
run()</script>

这段程序的基本原理:
用js在页面中生成若干个img标签:
<img src="+autourl[i]+"/"+Math.random()+" width=1 height=1 onerror=auto('"+autourl[ i ]+"')>
实际上是
<img scr="一个url+一个不存在但是图象文件" width =1 height=1 onError="auto('一个url')">
当该img标签在页面生成后,浏览器会向该url指向的服务器发出下载这个不存在的img文件的要求,而服务器在得到请求后会反馈给浏览器'该文件不存在'的信息----于是在浏览器中触发该img的onerror事件.在auto函数中程序统计出这个反馈时间的长度,在text中显示出来.

该程序可以自动对多个url的响应时间做计算.可以利用它做一些例如在多个景象站点间自动选择最快的加以连接这样的功能.
BrightEye 2002-05-15
  • 打赏
  • 举报
回复
跟高手学一招.
孟子E章 2002-05-15
  • 打赏
  • 举报
回复
<%
set obj = server.createObject("MSXML2.ServerXMLHTTP")
obj.Open "GET","http://www.mss.com",FALSE
obj.Send
if obj.Status = 200 then
Response.Write "up"
else
Response.Write "Down or invalid address"
end if
set obj = nothing
%>
saucer 2002-05-15
  • 打赏
  • 举报
回复
try something like this on the server, although it is not recommended:

<%
set obj = server.createObject("MSXML2.ServerXMLHTTP")
On Error Resume Next
obj.setTimeouts 60000,60000,300000,3600000
obj.Open "HEAD","http://www.mss.com",FALSE
obj.Send
if obj.Status = 200 then
Response.Write "up"
else
Response.Write "Down or invalid address"
end if
set obj = nothing
%>
超级大笨狼 2002-05-14
  • 打赏
  • 举报
回复
用vb作一个dll吧,参考抓取源码的做法,如果返回字串就可以访问.asp和html页面通吃.
原理是在vb里面调用web browser控件,用getchunk方法取回一小段(反正你也就是判断有和无的问题),加上timmer控件,判断时间,如果在这段时间内得到了一些东西就是可以访问的.注意用doevents控制你的dll,要不你的服务器就负担太重了.
明白吗?我的qq号28963147

28,408

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧