[AccessD] A2000: IP Address/es List

MartyConnelly martyconnelly at shaw.ca
Thu Jun 29 12:58:56 CDT 2006


You could try using WMI , it takes about 5 to 10 seconds to run
on first pass to start WMI. WMI can also look deeper
on an NIC and get speed, error count etc but depends on Vendor.
Here are about 400 sample WMI scripts.
http://www.activexperts.com/activmonitor/windowsmanagement/scripts/

most WMI work is done by Network Nabobs and done in VBS script.
So you will have to hunt around scripting sites.
When debugging WMI turn on and off 'On Error Resume Next
It will help you find variables that are returned as either arrays or 
strings
If you dont have full documentaion.
You can run this over a domain if you have a table of machine names
or obtain them from ADSI


Sub listMACS()

Dim objWMIService As Object
Dim colItems As Object
Dim objItem As Object
Dim strComputer As String
Dim count As Long
Dim i As Long
Dim IPAddress As String
Dim NetworkMAC As String
'On Error Resume Next
strComputer = "." 'local default machine name
count = 0
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from 
Win32_NetworkAdapterConfiguration ", , 48)
For Each objItem In colItems
    count = count + 1
    If count = 1 Then
    Debug.Print "Net DHCPEnabled: " & objItem.DHCPEnabled

    If Not IsNull(objItem.IPAddress) Then
        For i = LBound(objItem.IPAddress) To UBound(objItem.IPAddress)
            Debug.Print "IP address: " & objItem.IPAddress(i)
  IPAddress = objItem.IPAddress(i)
        Next
    End If
    Debug.Print "Net MAC Address: " & objItem.MACAddress
 NetworkMAC = objItem.MACAddress
    Else
    End If
Next
End Sub

or a different method

Sub testnicconfigS()
'may need to set reference to WMI for WinXP and 2000
'The Win32_NetworkAdapterConfiguration WMI class represents
'the attributes and behaviors of a network adapter.
'This class has been extended to include extra properties and methods
 'that support the management of the TCP/IP and Internetworking Packet 
Exchange (IPX)
 'protocols (and are independent of the network adapter).

Dim strComputer As String
Dim objWMIService As Object
Dim colitems As Object
Dim objitem As Object
On Error Resume Next
 'there maybe multiple Nic entries that are empty so skip them

strComputer = "." 'default "." specifies local machine name
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colitems = objWMIService.ExecQuery("Select * from 
Win32_NetworkAdapterConfiguration", , 48)

For Each objitem In colitems

   Debug.Print "DHCPEnabled: " & objitem.DHCPEnabled
   Debug.Print "DHCPLeaseExpires: " & WMIDateStringToDate
(objitem.DHCPLeaseExpires)
   Debug.Print "DHCPLeaseObtained: " & WMIDateStringToDate
(objitem.DHCPLeaseObtained)
   Debug.Print "DHCPServer: " & objitem.DHCPServer
   Debug.Print "DNSDomain: " & objitem.DNSDomain

   Debug.Print "DNSHostName: " & objitem.DNSHostName

   Debug.Print "DomainDNSRegistrationEnabled: " &
objitem.DomainDNSRegistrationEnabled

   Debug.Print "IPAddress: " & objitem.IPAddress(0)
      'this is an array like other undocumented entries
      'you will have to find by trial and error
      'although there is an isarray property somewhere
      Debug.Print "IPAddresslen: " & Len(objitem.IPAddress(0))
   Debug.Print "IPConnectionMetric: " & objitem.IPConnectionMetric
   Debug.Print "IPEnabled: " & objitem.IPEnabled
   Debug.Print "MACAddress: " & objitem.MACAddress
   Debug.Print "MTU: " & objitem.MTU

Next
End Sub
Function WMIDateStringToDate(dtmInstallDate) As String 'WMI has an odd date
format WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _
Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _ & " " &
Mid(dtmInstallDate, 9, 2) & ":" & _ Mid(dtmInstallDate, 11, 2) & ":" &
Mid(dtmInstallDate, _ 13, 2))
End Function



Darren DICK wrote:

>Hi Gustav
>
>I think that was it
>
>But when I run it - Access dies and Microsoft kindly offers me the opportunity
>the send them a report about the death or not - I Choose NO
>
>I vaguely remember having to change one tiny tiny bit of code from a zero to a 1
>or vice versa - can't remember - thanks for the link
>
>See ya 
>
>Have a great day
> 
>Darren
>------------------
>T: 0424 696 433
>
>-----Original Message-----
>From: accessd-bounces at databaseadvisors.com
>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock
>Sent: Thursday, 29 June 2006 11:35 PM
>To: accessd at databaseadvisors.com
>Subject: Re: [AccessD] A2000: IP Address/es List
>
>Hi Darren
>
>Could it be this from Robert:
>
>http://databaseadvisors.com/pipermail/accessd/2004-January/018242.html 
>
>/gustav
>
>  
>
>>>>darrend at nimble.com.au 29-06-2006 14:36:37 >>>
>>>>        
>>>>
>Hi All
> 
>A long time ago (2 or 3 hard disk formats ago) I had a nifty bit of code that
>iterated through all the nics etc and returned a list of all the IP Address/es
>for a machine
> 
>Anyone know where I can get my hands on it again??
> 
>Many thanks - In advance
> 
>Have a great day y'all
> 
>Darren
>
>  
>

-- 
Marty Connelly
Victoria, B.C.
Canada




More information about the AccessD mailing list