PHP Ping服务器监控代码优化

时间:2016-09-14 18:11:05

标签: php html

我已经选择了一个PHP ping工具,并且在其他成员的帮助下,我已经设法让它显示我需要的所有内容。我遇到的问题是这需要ping 115个不同的IP地址,有时会得到“致命错误最长执行时间为30秒”

我复制了下面的代码并且只添加了1个主机和1个服务以节省空间,但通常有115个主机和115个服务。

$host1[1] = "8.8.8.8";//These addresses are generic for security reasons.
$host1[2] = "8.8.8.8";
$host1[3] = "8.8.8.8";

$services1[1] = "site 1";//These site names are generic for security reasons.
$services1[2] = "site 2";
$services1[3] = "site 3";

    $counter = "";
        $has_down = false;   // flag, no sites are down yet
        foreach ($host1 as $value1) 
        {
          $counter = $counter + 1;
          echo "<tr>"; 
          echo '<body bgcolor="#FFFFFF" text="#000000"></body>';       
          //check target IP or domain
          $pingreply = exec("ping -n $count $value1");
          if ( substr($pingreply, -2) == 'ms')
            {

            }
          else 
            {
                echo "<p><font size='6'><center><strong><div class='alert alert-danger'>" . $services1[$counter] . " - No Reply</div></strong></center></font></p>";
                // site down, set flag
                $has_down = true;
            }
        }

        // flag still false, all sites work
        if (!$has_down) {
            echo "<p><font size='6'><center><strong><div class='alert alert-success'>All sites responding to pings</div></strong></center></font></p>";
        }

如果有$ host1和$ services1,我有115个,但我只在这里放了3个代码,所以它不会占用大量的空间。

我有什么方法可以改进这个,因为它需要很长时间来加载页面,如果需要很长时间,它有时会出现致命错误。

另外我相信每个$ host只发送1个ping但是我想知道我是否可以让它向网站发送4个ping包,如果它得到平均ping响应那么网站就会启动,因为我们有一些ADSL线路上的站点在ping时经常会丢弃数据包,因此当站点刷新时,它表示它们已关闭但是它们只丢了1 ping。

我们可以对此进行优化并增加ping到站点的数量吗?

感谢您提前帮助。

0 个答案:

没有答案