>我正在尝试创建一个设置页面(为客户端),他们可以在其中查看当前向上的地址,更改IP地址等。我有一个 php 文件来查看 IP 地址
<?php
$res=shell_exec("ifconfig");
echo $res;
?>
此代码工作正常并显示预期结果。但是,更改服务器 IP 地址的代码无法正常工作。
<?php
shell_exec("ifconfig eth0 192.168.163.136");
?>
当我使用 ipaddr 检查终端上的 IP 地址时运行此代码后,我没有看到 IP 地址有任何变化。请指出我哪里出错了。我认为这是 apache 不是超级/根用户的问题。如果是这种情况,我不知道如何让 apache 以根用户身份运行。
您的 PHP 脚本没有足够的权限来更改接口地址。你可能想写一个 Shellscript,给它正确的权限(例如,将其所有者更改为 root,并设置 suid 位),然后从你的 PHP 脚本运行它。然而,我建议不要这样做
IP 地址是在网络协议的网络层配置的,而不是在运行 PHP 的应用程序层中配置的。简单地说,PHP 无法访问它,也无法更改它们。
想象一下,如果可能的话,它可能会产生哪些漏洞。
在 ifconfig 工作之前添加/srv/http
。它所需要的只是根拥有的位置。