viplight 发表于 2010-3-21 02:25:14

如何将网卡如图三者都获取到(已解决)

本帖最后由 viplight 于 2010-3-21 15:39 编辑


我通过下面的代码能获取到前两者但是后面的网卡ID就不能获取到高手指点指点.....Dim $lanidhuoqu = _NetworkAdapterInfo()
For $i=1 To $lanidhuoqu
MsgBox(0,"第"&$i&"张网卡的信息","网卡名称:"&$lanidhuoqu[$i]&@CRLF&"连接名称:"&$lanidhuoqu[$i])
Next
Func _NetworkAdapterInfo()
;======================================================
;
; 函数名称:      _NetworkAdapterInfo()
; 详细信息:      获取系统所有网卡信息
; 返回值说明:
; 以二维数组方式返回.例如 $info=_NetworkAdapterInfo()
; $info 网卡数量
; $info 第一块网卡的标志1
; $info 第一块网卡的状态
; 状态说明:7为网卡未插网线,2为网卡连接正常
; $info 第一块网卡的网卡名称
; $info 第一块网卡的连接名称
; $info 第一块网卡的MAC地址
; $info 第一块网卡的IP地址
; $info 第一块网卡的默认网关
; $info 第一块网卡的子网掩码
; $info 第一块网卡的主DNS
; $info 第一块网卡的次DNS
; 第二块网卡:
; $info 第二块网卡的标志1
; $info 第二块网卡的次DNS

; 其他网卡信息依次类推。。。
; 注意,此UDF不会获取已经禁用的网卡。
; 作者:      Sanhen (gxbeiliu@163.com)
; 网站: www.lunhui.net.cnwww.autoitx.com
;======================================================
    Local $colItem
    Local $objItem
    Local $colItems
    Local $objItems
    Local $objWMIService
    Local $Adapters
    $Adapters = 0
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItem= $objWMIService.ExecQuery("Select * FROM Win32_NetworkAdapter Where NetConnectionStatus >0", "WQL", 0x30)
    If IsObj($colItem) Then
      For $objItem In $colItem
            If $objItem.MACAddress = "00:00:00:00:00:00" Then ContinueLoop
            $Adapters += 1
            ReDim $Adapters
            $Adapters[$Adapters] += $Adapters
            $Adapters[$Adapters] = $objItem.NetConnectionStatus
            $Adapters[$Adapters] = $objItem.Description
            $Adapters[$Adapters] = $objItem.NetConnectionID
            $Adapters[$Adapters] = $objItem.MACAddress
            $colItems= $objWMIService.ExecQuery('Select * FROM Win32_NetworkAdapterConfiguration Where MACAddress = "'&$Adapters[$Adapters]&'" And IPEnabled = True ' , "WQL", 0x30)                     
            If IsObj($colItems) Then
                For $objItems In $colItems
                  ;if $objItem1.IPAddress(0) = "0.0.0.0" Then ContinueLoop
                  $Adapters[$Adapters] = $objItems.IPAddress(0)
                  $Adapters[$Adapters] = $objItems.DefaultIPGateway(0)
                  $Adapters[$Adapters] = $objItems.IPSubnet(0)
                  $Adapters[$Adapters] = $objItems.DNSServerSearchOrder(0)
                  $Adapters[$Adapters] = $objItems.DNSServerSearchOrder(1)
                Next   
            EndIf
      Next
    EndIf
   
Return $Adapters

EndFunc2010.03.21
下面这个地址有解决的办法了
http://www.autoitx.com/thread-13766-1-1.html

rikthhpgf2005 发表于 2010-3-21 08:23:37

过路看看:face (21):

y13y 发表于 2010-3-22 00:00:45

要用到,研究研究

goodyou520 发表于 2010-3-22 17:24:54

新手!!学习

hollandmfq 发表于 2014-5-6 23:10:29

雷锋精神传天下!谢谢分享!
页: [1]
查看完整版本: 如何将网卡如图三者都获取到(已解决)