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

时间:2015-01-26 20:48:53

标签: php batch-file networking cmd netsh

我正在尝试使用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. 

我不确定如何在参数中使用delayedexpansion。请帮忙!

2 个答案:

答案 0 :(得分: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 :(得分:0)

而不是去寻找系统函数并将参数传递给批处理文件。我使用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');