找回密码
 加入
搜索
查看: 5872|回复: 13

请教,怎么用$objWMIService.ExecQuery来自动获取IP及DNS

[复制链接]
发表于 2009-10-4 20:08:29 | 显示全部楼层 |阅读模式
请教,怎么用$objWMIService.ExecQuery来自动获取IP及DNS,手动获取IP(即设置IP)的我会
 楼主| 发表于 2009-10-4 20:12:33 | 显示全部楼层
共享手动获取的源码
;~ $ConnectionName = 连接名
;~ $SetIPAddress =IP地址
;~ $SetSubnetmask = 子网掩码
;~ $SetGateway = 网关
;~ Dim $SetDns[2]
;~ $SetDns[0] = DNS1
;~ $SetDns[1] = DNS2
        $objWMIService = ObjGet("winmgmts:\" & $strComputer & "\root\CIMV2")
                $colItemName  = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter Where NetConnectionID='" & $ConnectionName & "'", "WQL", 0x30)
                For $objName In $colItemName
                        If $objName.NetConnectionID =  $ConnectionName Then
                                $CardIndex=$objName.Index
                                ExitLoop
                        EndIf
                Next
                If $CardIndex =-1 Then
                                MsgBox(0,"错误",'找不到连接' )
                Else
                        $colItems = $objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE And Index='" & $CardIndex & "'" , "WQL", _
                                                        $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
                        If IsObj($colItems) Then
                                        For $objNetAdapter In $colItems
                                                        $objNetAdapter.EnableStatic ($SetIPAddress, $SetSubnetmask)
                                                        $objNetAdapter.SetGateways ($SetGateway)
                                                        $objNetAdapter.SetDNSServerSearchOrder ($SetDns)
                                        Next
                        EndIf
                Endif 
ji记得
Global        $wbemFlagReturnImmediately         = 0x10, _                ;不要修改
                $wbemFlagForwardOnly                 = 0x20                         ;不要修改
 楼主| 发表于 2009-10-4 20:35:48 | 显示全部楼层
$objNetAdapter.EnableDHCP()
$objNetAdapter.SetDNSServerSearchOrder()

这样后
表面上是自动获取,实际也是,但读取子网掩码会等于255.0.0.0,郁闷,不是0.0.0.0,有没有解决法子?
 楼主| 发表于 2009-10-4 21:09:03 | 显示全部楼层
饿,自顶。可能有点难解决。。。

IP信息是由_GetNetworkNetInfo函数获取
 楼主| 发表于 2009-10-4 21:45:17 | 显示全部楼层
奶奶的,我马上就搞好au3多网卡不支持vpn版的修改mac
 楼主| 发表于 2009-10-4 22:31:32 | 显示全部楼层
哈,mac源码基本完成了。。。

只等上面的问题解决
 楼主| 发表于 2009-10-5 06:03:56 | 显示全部楼层
没人知道?画gui中。。。
发表于 2009-10-5 11:49:20 | 显示全部楼层
我也在搞MAC这块,呵呵!我用了ACN帮助里面的函数,自动获取的话,你可以试一下以下命令:netsh interface ip reset ip当然不会立即生效,需要重启电脑。
发表于 2009-10-5 11:53:56 | 显示全部楼层
补充一下,也可以尝试用ipconfig /renew一下看看效果。
 楼主| 发表于 2009-10-5 13:16:32 | 显示全部楼层
回楼上的,你所说的不行,不是不行,而是不适合我,我已经搞好了,mac也行了,就等我爸不在,去他的笔记本调试多网卡修改mac是否成功,ip的早已好了,2.0版本出炉了。。。
 楼主| 发表于 2009-10-5 16:41:05 | 显示全部楼层
发表于 2009-10-17 17:54:16 | 显示全部楼层
版主你也有会人新问题,这个问题查查新版的UDF就可以!

评分

参与人数 1金钱 +2 收起 理由
kn007 + 2 udf可没自动哦,没想到老萧这么快搞出来了

查看全部评分

发表于 2009-10-18 00:52:41 | 显示全部楼层
写注册表.         .

评分

参与人数 1金钱 +10 收起 理由
kn007 + 10 谢谢了,不过这是最没用最不喜欢的法子,还 ...

查看全部评分

发表于 2010-11-8 08:21:27 | 显示全部楼层
回复 1# kn007


    楼主请问如何使用wmi设置成自动获取IP
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-15 01:55 , Processed in 0.078634 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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