Как изменить IP-адрес с помощью сетевой оболочки с аргументом в качестве IP

Я пытаюсь запустить приведенный ниже пакетный скрипт с использованием 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 только. Не %1%

Измените ваш пакетный файл соответственно:

 netsh int ip set address "EDU_LAN_Connection" static 172.31.%1.110 255.255.255.0 172.31.%1.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');
0

По вопросам рекламы [email protected]