There are two ways to get this from the local host with relative ease.
First, you could use WMI or, second, you can shell out a CMD prompt and
capture IPCONFIG to a text file, parse it, get what you want and delete it.
The following is WMI code for revealing all the current NIC data for all
Nics on a host in WMI:
'Get a connection to the WMI NetAdapterConfig object
Set NIC1=GetObject("winmgmts:{ImpersonationLevel=Impersonate}\\" & _
".").InstancesOf("Win32_NetworkAdapterConfiguration")
'For Each of the NICs in the connection
For Each Nic in NIC1
'Get the Adapter Description
StrNIC = Nic.Description
'If IP is enabled on the NIC then let's find out about the NIC
IF Nic.IPEnabled THEN
lngCount=UBound(Nic.IPAddress)
For i=0 to lngCount
If i >= 0 Then
debug.print "==================================" & _
vbNewLine
debug.print StrNic & vbNewLine
StrIP = vbTab & Nic.IPAddress(i)
If StrIP <> "" Then
debug.print vbTab & "IP address = " & _
StrIP
debug.print vbTab & "MAC Address = " & _
Nic.MACAddress
debug.print vbTab & "NIC Service (Short) Name = " & _
Nic.ServiceName
debug.print vbTab & "IP Subnet(s): "
For j = 0 to UBound(Nic.IPSubnet)
debug.print vbTab & vbTab & Nic.IPSubnet(j)
Next
debug.print vbTab & _
"Internet Database Files Path = " & _
Nic.DatabasePath
debug.print vbTab & "Dead Gateway Detection = " & _
Nic.DeadGWDetectEnabled
debug.print vbTab & "IP Gateway(s): "
For j=0 to UBound(Nic.DefaultIPGateway)
debug.print vbTab & vbTab & Nic.DefaultIPGateway(j)
Next
If Nic.DHCPEnabled Then
debug.print vbTab & "DHCP Assigned IP address = " & _
Nic.DHCPEnabled
debug.print vbTab & "DHCP Server = " & _
Nic.DHCPServer
End If
debug.print vbTab & _
"DNS for WINS Resolution Enabled = " & _
Nic.DNSEnabledforWINSResolution
debug.print vbTab & "DNS Host Name = " & _
Nic.DNSHostName
debug.print vbTab & "DNS Servers:"
For j=0 to UBound(Nic.DNSServerSearchOrder)
debug.print vbTab & vbTab & Nic.DNSServerSearchOrder(j)
Next
debug.print vbTab & "IP Port Filtering Enabled = " & _
Nic.IPFilterSecurityEnabled
If Nic.IPFilterSecurityEnabled Then
debug.print vbTab & "IP Filtering Enabled."
If Nic.IPSecPermitIPProtocols <> 0 Then
For j=0 to UBound(Nic.IPSecPermitIPProtocols)
debug.print vbTab & vbTab & "Protocol: " & _
Nic.IPSecPermitIPProtocols(j)
Next
Else
debug.print vbTab & vbTab & "No Protocols Filtered"
End If
If Nic.IPSecPermitTCPPorts <> 0 Then
For j=0 to UBound(Nic.IPSecPermitTCPPorts)
debug.print vbTab & vbTab & "TCP Port: " & _
Nic.IPSecPermitTCPPorts(j)
Next
Else
debug.print vbTab & vbTab & "No TCP Ports Filtered"
End If
If Nic.IPSecPermitUDPPorts <> 0 Then
For j=0 to UBound(Nic.IPSecPermitUDPPorts)
debug.print vbTab & vbTab & "UDP Port: " & _
Nic.IPSecPermitUDPPorts(j)
Next
Else
debug.print vbTab & vbTab & "No UDP Ports Filtered"
End If
End If
debug.print vbTab & "LMHOSTS Lookup Enabled = " & _
Nic.WINSEnableLMHostsLookup
debug.print vbTab & "WINS Lookup File = " & _
Nic.WINSHostLookupFile
debug.print vbTab & "Primary WINS Server = " & _
Nic.WINSPrimaryServer
debug.print vbTab & "Secondary WINS Server = " & _
Nic.WINSSecondaryServer
debug.print vbTab & "WINS Scope ID = " & Nic.WINSScopeID
End If
End If
Next
END IF
Next