我想创建一个网页,其中我添加了一些内部网链接。 我只是想知道如何检查我添加的链接,在某个时刻是否正常工作。 我想在RED中标记链接,如果它不起作用,那么它应该是绿色的。
答案 0 :(得分:3)
如果您需要轻量级程序检查,则可以执行HTTP HEAD请求并检查大于或等于200且小于400的响应代码。
答案 1 :(得分:0)
如果你想检查客户端......
<style type="text/css">
.good {
color:green;
}
.bad {
color:red;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("a.checkLinks").each(checkme);
})
// load page from URL with ajax
function checkme(i, item) {
$.ajax({
type: "GET",
url: item.href,
success: function(data, textStatus) {
$(item).addClass("good");
},
error: function(request) {
$(item).addClass("bad");
}
});
}
</script>
<a class="checkLinks" href="good.html">Good</a><br/>
<a class="checkLinks" href="bad.html">Bad</a>
答案 2 :(得分:0)
如果你想检查服务器端(php示例):
<?php
function isup($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if(curl_exec($ch)) {
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
return ($httpcode < 400);
}
return false;
}
$url = "http://example.com/404";
printf('<a href="%s" class="%s">Link</a>', $url, isup($url) ? 'good' : 'bad');
答案 3 :(得分:-2)
在链接的另一端ping一些东西。虽然您可能找到检查接口状态或路由表或其他各种方法的方法......您真正想知道的是流量是否流入和流出该目的地。
在unix上可以使用ping
和-c
参数发送大量数据包,-w
指定等待时间(以秒为单位)。然后检查退出状态:
ping -c 3 -w 5 remote-host
如果数据包被丢弃,ping将以非零退出代码退出。