我已经选择了一个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到站点的数量吗?
感谢您提前帮助。