def self.value_for_interface_and_label(interface, label)
wmi_value = WINDOWS_LABEL_WMI_MAP[label.downcase.to_sym]
label_value = nil
Facter::Util::WMI.execquery("SELECT Index FROM Win32_NetworkAdapter WHERE NetConnectionID = '#{interface}'").each do |nic|
Facter::Util::WMI.execquery("SELECT #{wmi_value} FROM Win32_NetworkAdapterConfiguration WHERE Index = #{nic.Index}").each do |nic_config|
case label.downcase.to_sym
when :ipaddress
nic_config.IPAddress.any? do |addr|
label_value = addr if valid_ipv4_address?(addr)
label_value
end
when :ipaddress6
nic_config.IPAddress.any? do |addr|
label_value = addr if Facter::Util::IP::Windows.valid_ipv6_address?(addr)
label_value
end
when :netmask
nic_config.IPSubnet.any? do |addr|
label_value = addr if Facter::Util::IP::Windows.valid_ipv4_address?(addr)
label_value
end
when :macaddress
label_value = nic_config.MACAddress
end
end
end
label_value
end