我正在尝试 ping 服务器,但我的主机被禁用exec()
and system()
由于安全原因。
是否还有其他选项可以让它工作,或者我是否必须要求我的主机启用它们?
我得到的错误:
警告:出于安全原因,system() 已被禁用
警告:出于安全原因,exec() 已被禁用
您可以通过使用来做到这一点PHP 套接字函数 http://www.php.net/manual/en/function.socket-create.php
PHP网站注释中的一个用于ping的函数:
function ping($host, $timeout = 1) {
/* ICMP ping packet with a pre-calculated checksum */
$package = "\x08\x00\x7d\x4b\x00\x00\x00\x00PingHost";
$socket = socket_create(AF_INET, SOCK_RAW, 1);
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => $timeout, 'usec' => 0));
socket_connect($socket, $host, null);
$ts = microtime(true);
socket_send($socket, $package, strLen($package), 0);
if (socket_read($socket, 255))
$result = microtime(true) - $ts;
else $result = false;
socket_close($socket);
return $result;
}
但是,如果不允许您进行系统调用,则很有可能套接字功能也会被禁用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)