Intereting Posts

изменить ip-адрес сервера с помощью PHP

я должен иметь возможность изменять IP-адрес сервера с помощью PHP. Я пытаюсь использовать ifconfig eth0 down качестве пользователя www-data чтобы убедиться, что он будет работать. до сих пор я избавился от проблемы с разрешениями в файле / var / run / network / ifstate, но теперь я получаю строку с разрешенным разрешением, которая читает SIOCSIFFLAGS: Permission denied . Есть ли способ обойти это? если нет, как изменить 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, написанный в любом случае, ищет этот файл, и если он есть, он читает содержимое, анализирует его и вносит изменения

Это должно быть достаточно безопасным.

Я понял это. ответ заключался в том, чтобы добавить пользователя www-data (или как бы имя пользователя вашего сервера) в группу администратора с помощью usermod -a -G admin www-data . если вы посмотрите на /etc/sudoers , вы заметите, что любой человек из этой группы может выполнять команды sudo без подсказки пароля, используя sudo -n <command> . сделал быстрое изменение кода:

 //if the ip has changed, bring down the network interface and bring it up with the new IP if($ipConf != $ip) { $ifdownSuccess = exec("sudo -n ifconfig eth0 down", $downOutput, $downRetvar); $ifupSuccess = exec("sudo -n 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); } 

и я сейчас в бизнесе. смог подключиться к новому IP-адресу через SSH и просматривать веб-страницы через новый IP-адрес.