Я пытаюсь запустить приведенный ниже пакетный скрипт с использованием PHP (он работает из командной строки), чтобы изменить IP с помощью переданного аргумента
@echo off
setlocal enabledelayedexpansion
netsh int ip set address "EDU_LAN_Connection" static 172.31.%1.110 255.255.255.0 172.31.%1.1 1
В PHP:
system("cmd /c C:\EDU_Project\change_ip.bat 6");
Я получаю следующую ошибку при запуске сценария PHP:
Invalid address parameter (172.31.61.1 1). It should be a valid IPv4 address.
Я не уверен, как использовать задержку расширения с аргументом. Пожалуйста помоги !
Параметры партии адресованы с %1
только. Не %1%
Измените ваш пакетный файл соответственно:
netsh int ip set address "EDU_LAN_Connection" static 172.31.%1.110 255.255.255.0 172.31.%1.1 1
Вместо того, чтобы переходить к системной функции и передавать аргумент в командный файл. Я запустил команду netsh напрямую из PHP, используя shell_exec:
$var= 18;
shell_exec('netsh int ip set address name=\"EDU_LAN_Connection\" static 172.31.'.$var.'.110 255.255.255.0 172.31.'.$var.'.1 1');