none
컴퓨터이름으로 MAC Address 가져오기 오류 수정 좀 부탁합니다 RRS feed

  • 질문

  • 소스코드가 정확히 작동하지 않습니다

    Function GetMACAddress(byval strComputer as string) as string
    
            Dim objWMIService as object
            Dim objItem as object
        dim colItems as object
        dim  mac_addr variant
    
     
    
            On Error Resume Next 
    
     
    
     
    
            '' WMI Connection to the object in the CIM namespace 
    
            Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
    
     
    
            '' WMI Query to the Win32_OperatingSystem 
    
            Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration") 
    
     
    
            For Each objItem in colItems 
    
             
    
            If objItem.macaddress <> "" Then   
    
       
    
                    mac_addr= Replace(objItem.macaddress,":","-")   
    
       
    
            End If   
    
            Next 
    
            Set objWMIService = Nothing 
    
            GetMACAddress=mac_addr 
    
    End Function

    어디가 문제일까요??

    remote computer의 MAC은 아예 못 가져오고

    Local computer의 MAC도 정상적으로 가져오지 못합니다

    부탁드립니다

     


    2011년 6월 20일 월요일 오전 11:28

모든 응답

  • VB.NET 을 사용하신다면, 아래와 같은 방법으로 얻어올수있습니다.

    참고하세요.

    Imports System
    Imports System.Management

    Private Sub EnumNetworkAdapters()

        Dim query As ManagementObjectSearcher
        Dim queryCollection As ManagementObjectCollection
        Dim mo As ManagementObject
        Dim s As String

        query = New ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress is not null")
        queryCollection = query.Get()

        For Each mo In queryCollection
            Debug.WriteLine(mo.ClassPath)
            Debug.WriteLine(mo.Options)
            Debug.WriteLine("Index         =" + String.Format("{0:0}", mo("Index")))
            Debug.WriteLine("Description   =" + mo("Description"))
            Debug.WriteLine("MacAddress    =" + mo("MacAddress"))
            If (CType(mo("IPEnabled"), Boolean) = True) Then
                Dim addresses() As String = CType(mo("IPAddress"), String())
                Dim subnets() As String = CType(mo("IPSubnet"), String())

                Debug.WriteLine("DNS Host      =" + mo("DNSHostName"))
                Debug.WriteLine("DNS Domain    =" + mo("DNSDomain"))
                For Each s In addresses
                    Debug.WriteLine("IP Address    =" + s)
                Next
                For Each s In subnets
                    Debug.WriteLine("IP Subnet     =" + s)
                Next
            End If
        Next
    End Sub

    2012년 8월 15일 수요일 오전 1:38