use strict; use Win32::TieRegistry; use Data::Dumper; # Get nic info via wmic (not available on all versions of windows)... my @devs = split(/^\s*\n/m, `wmic nic list brief /format:value`); my %Regvalues; shift(@devs); # Remove initial blank line DumpReg(); Dumpwmic( $_ )for (0..15); sub Dumpwmic{ my $d = $devs[shift]; # Take the 2nd device my %node = split(/[=\n]/, $d); # Hashify information $node{Name} =~s/\s+$//; print Dumper(\%node); print $Regvalues{ $node{Name} } . "\n"; } sub DumpReg{ my $dev="LMachine/SOFTWARE/Microsoft/Windows NT/CurrentVersion/NetworkCards"; my $key=$Registry->Open($dev, { Access => "KEY_READ", Delimiter => "/" } ); foreach my $subKey ( $key->SubKeyNames ) { $Regvalues{ $key->{$subKey}->{Description} } = $key->{ $subKey}->{ServiceName}; print "$subKey=" . $key->{$subKey}->{Description} . " " . $key->{ $subKey}->{ServiceName} . "\n"; } }