由自动获取IP地址设置为固定IP的代码已知:(如下)
;16进制的0x10加上16进制的0x20=10进制的16+32=48
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
;"."取代了原代码中的"winmgmts:\\&$strComputer&\root\CIMV2"的$strComputer
$strComputer = "."
;预设置的IP地址
Dim $SetIPAddress[1]
$SetIPAddress[0] = "192.168.1.101"
;预设置的子网掩码
Dim $SetSubnetmask[1]
$SetSubnetmask[0] = "255.255.255.0"
;预设置的默认网关
Dim $SetGateway[1]
$SetGateway[0] = "192.168.1.1"
;首选及备选DNS服务器
Dim $SetDns[2] = ["202.102.224.68", "202.102.227.68"]
;具体作用不是很明白,本人的理解是“获取对象”
$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE", "WQL", 48)
;$colComputers = $objWMIService.ExecQuery("Select * from Win32_ComputerSystem");没看出这行在这里起什么作用
;修改IP地址代码
;If IsObj($colItems) Then;猜这行作用是:如果找到网卡信息就开始修改
For $objItem In $colItems
;$objItem.EnableStatic($SetIPAddress, $SetSubnetmask);修改IP地址及子网掩码
;$objItem.SetGateways($SetGateway);修改默认网关
;$objItem.SetDNSServerSearchOrder($SetDns);修改首选及备选DNS服务器
Next
;EndIf
;“获取对象”
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE", "WQL", 48)
;获取当前的IP地址
For $objItem In $colItems
$LocalIP = $objItem.IPAddress(0);获取IP地址
$LocalSubnetmask = $objItem.IPSubnet(0);获取子网掩码
$LocalGateway = $objItem.DefaultIPGateway(0);获取默认网关
$LocalDns1 = $objItem.DNSServerSearchOrder(0);获取首选DNS服务器
$LocalDns2 = $objItem.DNSServerSearchOrder(1);获取备选DNS服务器
Next
;用对话框显示出来
MsgBox(0, "当前IP地址信息", $LocalIP & @LF & $LocalSubnetmask & @LF & $LocalGateway & @LF & $LocalDns1 & @LF & $LocalDns2)
如题求解:如何由固定IP设置为自动获取IP地址
多谢版主
虽然是以批处理的方式解决的,也还是解决了
;自动获取IP地址
RunWait(@ComSpec & ' /c netsh interface ip set address "本地连接" source=dhcp',"", @SW_HIDE)
[ 本帖最后由 星驰周 于 2008-9-7 18:39 编辑 ] |