#include <array.au3>
_ArrayDisplay(_GetNetworkAdapterIPEnabled())

;****************************************************************************************
; Funktion		_GetNetworkAdapterIPEnabled()
;
; Beschreibung	Ermittelt Netzwerkadapter mit konfigurierter IP
;
; Rückgabe		Array Netzwerkadapter
;				Array[n][0]	Caption
;				Array[n][1]	IP-Adresse
;				Array[n][2]	Subnetzmaske
;				Array[n][3]	Standardgateway
;				wird kein IPEnabled Adapter gefunden:
;							Return -1 und @error = 1
;
; Erfordernisse	#include <array.au3>
;
; Autor			BugFix (bugfix@autoit.de)
;****************************************************************************************
Func _GetNetworkAdapterIPEnabled()
	Dim $arAdapter[1], $var
	$arAdapter[0] = -1
	$wbemFlagReturnImmediately = 0x10
	$wbemFlagForwardOnly = 0x20
	$strComputer = "localhost"
	$objWMIService = ObjGet("winmgmts:" _
		& "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
	$IPConfigSet = $objWMIService.ExecQuery _
		("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE", "WQL", _
										$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
	For $IPConfig in $IPConfigSet
		For $i=0 to UBound($IPConfig.IPAddress)-1
			If $IPConfig.IPAddress($i) <> '0.0.0.0' Then
				$settings = $IPConfig.Caption & '|' & _
							$IPConfig.IPAddress($i) & '|' & _
							$IPConfig.IPSubnet(0) & '|' & _
							$IPConfig.DefaultIPGateway(0)
				If $arAdapter[0] = -1 Then
					$arAdapter[0] = $settings
				Else
					For $i = 0 To UBound($arAdapter)-1
						If $arAdapter[$i] = $settings Then 
							ExitLoop
						Else
							_ArrayAdd($arAdapter, $settings)
						EndIf
					Next
				EndIf
			EndIf
		Next
	Next
	If $arAdapter[0] = -1 Then 
		SetError(1)
		Return -1
	Else
		Local $arOut[UBound($arAdapter)][4]
		For $i = 0 To UBound($arAdapter)-1
			$var = StringSplit($arAdapter[$i], '|')
			$arOut[$i][0] = $var[1]
			$arOut[$i][1] = $var[2]
			$arOut[$i][2] = $var[3]
			$arOut[$i][3] = $var[4]
		Next
	EndIf
	Return $arOut
EndFunc ;==>_GetNetworkAdapterIPEnabled