Linux上的PHP和RAW SOCKETS
作者:互联网
做一个就足够了
sudo setcap cap_net_raw=eip /usr/bin/php5
能够在Linux中使用PHP(而不是CLI)中的RAW SOCKETS吗?
如果是,那么它不起作用(但开始在CLI中工作但不使用Apache)
所以我想我也必须将这些权限授予Apache,但我无法知道如何.
你能帮助我吗?
PHP脚本中的错误:
警告:socket_create():无法创建套接字[1]:不允许操作
php脚本:
$package = "\x08\x00\x7d\x4b\x00\x00\x00\x00PingHost";
$socket = socket_create(AF_INET, SOCK_RAW, 1);
if ($socket !== false) {
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 10, 'usec' => 0));
echo 'Creating PING Socket !';
socket_connect($socket, gethostbyname('noczone.com'), null);
socket_send($socket, $package, strLen($package), 0);
if (socket_read($socket, 255)) {
$result = microtime(true) - $ts;
} else {
echo 'Error Code : No PING';
}
socket_close($socket);
} else {
echo 'Failed Creating PING Socket !';
}
解决方法:
你有没有尝试过:
sudo setcap cap_net_raw = eip $(哪个httpd)?
你得到的错误是什么?
标签:apache,php,raw-sockets 来源: https://codeday.me/bug/20190520/1142458.html