为此,您可能想尝试一下,这极不可能提供有意义的数据,但值得深思。
如果您打开一个 tcp 套接字到一个随机端口,而不是超时,它会立即关闭。然后机器“启动”,但这并不意味着更多。它可能处于内核恐慌状态。
超时并不意味着机器停机。只是它没有拒绝 tcp 握手,而是放弃了它。
您将无法获得任何有意义的计时数据,但是如果有问题的机器是打开还是关闭,您会给出更多有根据的猜测。
<?php
$sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_connect ( $sock , string $address,22 ) === true) {
switch(socket_last_error($sock)) {
case 110:
case 112:
case 113:
echo 'Machine may be down';
break;
case 111:
echo 'Machine may be up';
break;
case 115:
echo 'Machine is up';
break;
default:
echo 'Machine in unknown state.';
break;
}
您已经声明不能使用 ping 命令,因此 Net_Ping 将无法工作,因为它只是操作系统中 ping 命令的一个奇特接口