如何使用带有参数作为 IP 的网络外壳更改 IP 地址


How to change IP address using network-shell with argument as 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%

相应地更改批处理文件:

 netsh int ip set address "EDU_LAN_Connection" static 172.31.%1.110 255.255.255.0 172.31.%1.1 1

而不是使用系统函数并将参数传递给批处理文件。我使用 shell_exec 直接从 PHP 运行 netsh 命令:

$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');