在线、间歇、离线 php ping 脚本
Online, Intermittent, Offline php ping script
这里是 php 服务器端脚本的新手,所以请多多包涵:
问题:
- 我将如何实现间歇调用?
对于问题 1:
我有 Online
/ Offline
方面的工作,但是,我需要实施 Intermittent
调用,如果第二个设备出现故障,该页面将在全局范围内显示主设备的间歇状态,并显示第二台设备处于离线状态,但我不确定如何去做...
这是有效的 online/offline 脚本,但下面没有间歇调用...
// CHECK CONNECTIVITY
class CheckDevice {
// CHECK END USERS OS (Linux or Windows)
public function myOS(){
if (strtoupper(substr(PHP_OS, 0, 3)) === (chr(87).chr(73).chr(78)))
return true;
return false;
}
public function ping($device_ip){
if ($this->myOS()){
if (!exec("ping -n 2 -w 1 ".$device_ip." 2>NUL > NUL && (echo 0) || (echo 1)"))
return true;
} else {
if (!exec("ping -q -c2 ".$device_ip." >/dev/null 2>&1 ; echo $?"))
return true;
}
return false;
}
}
// IP of Device
$device_ip = 'xxx.xxx.xxx.xxx';
// DEVICE CHECK
if ((new CheckDevice())->ping($device_ip))
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
else
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_offline">Offline</div>
<div class="status_offline_extended"></div>
<p class="span">Please be patient...</p>';
我希望在超过 1 个设备的情况下进行间歇调用的脚本,而如果设备 2 出现故障(或离线),则设备 1 会将其状态更改为间歇:
// CHECK CONNECTIVITY
class CheckDevice {
// CHECK END USERS OS (Linux or Windows)
public function myOS(){
if (strtoupper(substr(PHP_OS, 0, 3)) === (chr(87).chr(73).chr(78)))
return true;
return false;
}
public function ping($device_ip){
if ($this->myOS()){
if (!exec("ping -n 2 -w 1 ".$device_ip." 2>NUL > NUL && (echo 0) || (echo 1)"))
return true;
} else {
if (!exec("ping -q -c2 ".$device_ip." >/dev/null 2>&1 ; echo $?"))
return true;
}
return false;
}
}
// CHECK CONNECTIVITY
class CheckDevice2 {
// CHECK END USERS OS (Linux or Windows)
public function myOS(){
if (strtoupper(substr(PHP_OS, 0, 3)) === (chr(87).chr(73).chr(78)))
return true;
return false;
}
public function ping($device2_ip){
if ($this->myOS()){
if (!exec("ping -n 2 -w 1 ".$device2_ip." 2>NUL > NUL && (echo 0) || (echo 1)"))
return true;
} else {
if (!exec("ping -q -c2 ".$device2_ip." >/dev/null 2>&1 ; echo $?"))
return true;
}
return false;
}
}
// IP of Device
$device_ip = 'xxx.xxx.xxx.xxx';
$device2_ip = 'xxx.xxx.xxx.xxx';
// DEVICE CHECK
if ((new CheckDevice())->ping($device_ip))
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
else
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_offline">Offline</div>
<div class="status_offline_extended"></div>
<p class="span">Please be patient...</p>';
// DEVICE2 CHECK
if ((new CheckDevice2())->ping($device2_ip))
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE2 NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
else
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE2 NAME</b></p>
<div class="status_offline">Offline</div>
<div class="status_offline_extended"></div>
<p class="span">Please be patient...</p>';
我觉得这应该适合你:
if ((new CheckDevice2())->ping($device2_ip))
if ((new CheckDevice())->ping($device_ip))
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE2 NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
else
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_offline">Offline</div>
<div class="status_offline_extended"></div>
<p class="span">Please be patient...</p>';
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE2 NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
else
echo "INTERMITENT";
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE2 NAME</b></p>
<div class="status_offline">Offline</div>
<div class="status_offline_extended"></div>
<p class="span">Please be patient...</p>';
这里是 php 服务器端脚本的新手,所以请多多包涵:
问题:
- 我将如何实现间歇调用?
对于问题 1:
我有 Online
/ Offline
方面的工作,但是,我需要实施 Intermittent
调用,如果第二个设备出现故障,该页面将在全局范围内显示主设备的间歇状态,并显示第二台设备处于离线状态,但我不确定如何去做...
这是有效的 online/offline 脚本,但下面没有间歇调用...
// CHECK CONNECTIVITY
class CheckDevice {
// CHECK END USERS OS (Linux or Windows)
public function myOS(){
if (strtoupper(substr(PHP_OS, 0, 3)) === (chr(87).chr(73).chr(78)))
return true;
return false;
}
public function ping($device_ip){
if ($this->myOS()){
if (!exec("ping -n 2 -w 1 ".$device_ip." 2>NUL > NUL && (echo 0) || (echo 1)"))
return true;
} else {
if (!exec("ping -q -c2 ".$device_ip." >/dev/null 2>&1 ; echo $?"))
return true;
}
return false;
}
}
// IP of Device
$device_ip = 'xxx.xxx.xxx.xxx';
// DEVICE CHECK
if ((new CheckDevice())->ping($device_ip))
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
else
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_offline">Offline</div>
<div class="status_offline_extended"></div>
<p class="span">Please be patient...</p>';
我希望在超过 1 个设备的情况下进行间歇调用的脚本,而如果设备 2 出现故障(或离线),则设备 1 会将其状态更改为间歇:
// CHECK CONNECTIVITY
class CheckDevice {
// CHECK END USERS OS (Linux or Windows)
public function myOS(){
if (strtoupper(substr(PHP_OS, 0, 3)) === (chr(87).chr(73).chr(78)))
return true;
return false;
}
public function ping($device_ip){
if ($this->myOS()){
if (!exec("ping -n 2 -w 1 ".$device_ip." 2>NUL > NUL && (echo 0) || (echo 1)"))
return true;
} else {
if (!exec("ping -q -c2 ".$device_ip." >/dev/null 2>&1 ; echo $?"))
return true;
}
return false;
}
}
// CHECK CONNECTIVITY
class CheckDevice2 {
// CHECK END USERS OS (Linux or Windows)
public function myOS(){
if (strtoupper(substr(PHP_OS, 0, 3)) === (chr(87).chr(73).chr(78)))
return true;
return false;
}
public function ping($device2_ip){
if ($this->myOS()){
if (!exec("ping -n 2 -w 1 ".$device2_ip." 2>NUL > NUL && (echo 0) || (echo 1)"))
return true;
} else {
if (!exec("ping -q -c2 ".$device2_ip." >/dev/null 2>&1 ; echo $?"))
return true;
}
return false;
}
}
// IP of Device
$device_ip = 'xxx.xxx.xxx.xxx';
$device2_ip = 'xxx.xxx.xxx.xxx';
// DEVICE CHECK
if ((new CheckDevice())->ping($device_ip))
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
else
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_offline">Offline</div>
<div class="status_offline_extended"></div>
<p class="span">Please be patient...</p>';
// DEVICE2 CHECK
if ((new CheckDevice2())->ping($device2_ip))
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE2 NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
else
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE2 NAME</b></p>
<div class="status_offline">Offline</div>
<div class="status_offline_extended"></div>
<p class="span">Please be patient...</p>';
我觉得这应该适合你:
if ((new CheckDevice2())->ping($device2_ip))
if ((new CheckDevice())->ping($device_ip))
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE2 NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
else
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE NAME</b></p>
<div class="status_offline">Offline</div>
<div class="status_offline_extended"></div>
<p class="span">Please be patient...</p>';
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE2 NAME</b></p>
<div class="status_online">Online</div>
<p class="span">No issues or outages to report...</p>';
else
echo "INTERMITENT";
echo '<div class="status_wrapper">
<div class="status_oo_wrapper">
<div class="pic_bg"></div>
</div>
<p><b>DEVICE2 NAME</b></p>
<div class="status_offline">Offline</div>
<div class="status_offline_extended"></div>
<p class="span">Please be patient...</p>';