调用系统的 arp 命令失败,并显示shell_exec


Call to system's arp command fails with shell_exec

我已经在谷歌上搜索了很长时间,但没有得到我想要的东西。我在办公室的不同建筑物中有一个本地 Web 应用程序用于业务。我的员工将在本地网络中使用此应用程序,包括无线设备和台式计算机。但我想让他们只能通过有限的设备和机器访问。

我可以通过将连接的设备的 IP 地址传递给arp来获取连接的设备的 MAC 地址,例如:

arp -n 192.168.10.12

在终端中。

但是当我在 php 脚本中运行相同的命令时,我无法获得任何输出

$output = shell_exec('arp -n 192.168.10.12'); echo "<pre>$output</pre>";

我尝试了一些命令,例如shell_exec函数中的ls -l /var/www,这些命令的显示与命令行中的相同。所以我的问题是为什么我不能运行arp -n ipaddress命令以及如何运行它。

我无法通过路由器检查MAC地址,因为我的企业客户喜欢在来到我的办公室时使用我的网络。

提前谢谢。

我点击了这个链接。

我很确定不允许www-user使用arp命令或对完整路径的引用。

/usr/sbin/arp一样使用其完整路径。

它要么有效,要么没有许可。如果没有许可,搜索sudo并让www-user访问arp

dan@big:/root$ /usr/sbin/arp
Address                  HWtype  HWaddress      Flags Mask            Iface
xxxx.xx.xx.xxxx  ether   00:00:XX:00:01:XX      C                     eth0
dan@big:/root$ arp
bash: arp: command not found