使用 PHP 更改 apache 服务器的 IP 地址


Changing ip address of apache server using php

>我正在尝试创建一个设置页面(为客户端),他们可以在其中查看当前向上的地址,更改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。它所需要的只是根拥有的位置。