1

我想创建一个网页,在其中添加一些 Intranet 链接。我只是想知道如何检查我添加的链接是否正在工作。如果链接不起作用,我想用红色标记链接,否则它应该是绿色的。

4

4 回答 4

3

如果你想要一个轻量级的程序检查,你可以做一个 HTTP HEAD 请求并检查大于或等于 200 且小于 400 的响应代码。

于 2009-10-02T05:17:58.137 回答
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');
于 2009-10-02T06:23:03.140 回答
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>
于 2009-10-02T05:43:44.513 回答
-2

在链接的另一端 Ping 一些东西。虽然您可能会找到检查接口状态或路由表或其他各种东西的方法......您真正想知道的是流量是否流入和流出该目的地。

在 unix 上可以使用pingwith-c参数来发送多个数据包,并-w以秒为单位指定等待时间。然后检查退出状态:

ping -c 3 -w 5 remote-host

如果数据包被丢弃,ping 将以非零退出代码退出。

于 2009-10-02T05:18:01.820 回答