本帖最后由 roczyl 于 2010-2-15 21:33 编辑
情况是这样的,我现在已经可以为网卡修改IP了,但是我需要在不改变网卡原来IP的状态下,为网卡新增一个IP地址。
我使用下面这个函数只能为网卡指定一个IP,我给$LocalIPAddress数组增加一个值运行后出错,一个值运行正常的。搜遍网络没找到好的解决方案。自己摸索了很久,也没弄好。麻烦了。
已解决,$ipAdd, $Mask是数组,必须对应有ip和掩码。
Func _SetIPAddress($ipAdd, $Mask, $Gateway = "")
$Return=0
If $ipAdd = "" Then $Return = $Return + 1
If $Mask = "" Then $Return = $Return + 2
If $Gateway = "" Then $Return = $Return + 4
Dim $LocalIPAddress[1] = [$ipAdd]
Dim $strSubnetMask[1] = [$Mask]
Dim $strGateway[1] = [$Gateway]
Dim $strGatewayMetric[1] = [1]
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")
$colNetAdapters = $objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
If IsObj($colNetAdapters) Then
For $objNetAdapter in $colNetAdapters
If BitAND($Return, 1) = 0 AND BitAND($Return, 2) = 0 Then $objNetAdapter.EnableStatic($LocalIPAddress, $strSubnetMask)
If BitAND($Return, 4) = 0 Then $objNetAdapter.SetGateways($strGateway, $strGatewayMetric)
Next
EndIf
Return $Return
EndFunc ;_SetIPAddress修改IP地址 |