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

我需要能够使用PHP更改服务器的IP地址.我正在尝试将ifconfig eth0用作www-data用户,以确保它能正常工作.到目前为止,我已经摆脱了/ var / run / network / ifstate文件上的权限问题,但是现在我得到一个读取SIOCSIFFLAGS的权限被拒绝的行:权限被拒绝.有没有解决的办法?如果没有,如何更改网页中服务器的IP地址?

php代码:

//if the ip has changed, bring down the network interface and bring it up with the new IP
if($ipConf != $ip) {
    $ifdownSuccess = exec("ifconfig eth0 down", $downOutput, $downRetvar);
    $ifupSuccess = exec("ifconfig eth0 up ".$ip, $upOutput, $upRetvar);
    //TODO: check for ifupSucess and revert to old ip if the command failed
    var_dump($downOutput);
    var_dump($downRetvar);
    var_dump($ifdownSuccess);
    var_dump($upOutput);
    var_dump($upRetvar);
    var_dump($ifupSuccess);
}

收益:

array(0) { } int(127) string(0) "" array(0) { } int(127) string(0) ""

有没有解决此权限问题的方法或可以用来执行此操作的其他工具?

解决方法:

我有一个类似的问题,正在考虑以下解决方案:

1)php页面读取IP,Netmask和网关,检查格式是否正确以及IP是否可行,并将其写入文本文件

2)用任何内容编写的cronjob都将查找该文件,如果存在,它将读取内容,对其进行解析并进行更改

这应该足够安全.

上一篇:Centos8 安装ifconfig(net-tools.x86_64)


下一篇:linux – 使用awk或sed从ifconfig解析数据?