找回密码
 加入
搜索
查看: 2144|回复: 2

[网络通信] [已解决]关于使用WMI为一个网卡增加一个IP的问题

[复制链接]
发表于 2010-2-15 12:43:39 | 显示全部楼层 |阅读模式
本帖最后由 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地址

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

发表于 2010-7-18 08:33:58 | 显示全部楼层
在下不明白 $i 與[$i] 區別在哪裡。O(∩_∩)O~
发表于 2010-7-18 08:35:43 | 显示全部楼层
這個腳本,沒有針對網卡進行添加,假設有2張網卡。會有問題的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-11 00:39 , Processed in 0.075033 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表