【发布时间】:2019-08-13 02:24:17
【问题描述】:
我尝试使用socket_create ICMP ping Ip读取数据,在Windows10可以工作,但CentOS7不工作,错误消息是“socket_create():无法创建套接字[1]:不允许操作”,我还要检查phpinfo() enable sockets in CentOS7,这个是root权限的问题吗?请问如何解决...
我尝试使用 chmod -R 4777 /var/www/html/MyWeb 但仍然无法正常工作
/* ICMP ping packet with a pre-calculated checksum */
$package = "\x08\x00\x7d\x4b\x00\x00\x00\x00PingHost";
$icmp = getprotobyname("icmp");
$socket = socket_create(AF_INET, SOCK_RAW, $icmp);
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => $timeout, 'usec' => 0));
if (@socket_set_option($socket, SOL_SOCKET, SO_BINDTODEVICE, $iface) === false) return false;
socket_connect($socket, $host, 100);
$ts = microtime(true);
socket_send($socket, $package, strLen($package), 0);
if (@socket_read($socket, 255)) {
$result = $host;
} else {
$result = false;
}
socket_close($socket);
错误信息是:
socket_create(): Unable to create socket [1]: Operation not permitted
【问题讨论】: