use strict; use warnings; use Win32::NetResource qw( :DEFAULT GetSharedResources ); # IP address, DNS name or NETBIOS name. my $addr = @ARGV ? $ARGV[0] : '127.0.0.1'; GetSharedResources( \my @resources, RESOURCETYPE_DISK, { RemoteName => "\\\\$addr" } ) or do { Win32::NetResource::WNetGetLastError( my $errcode, my $errmsg, my $name); die("Unable to get ${addr}'s shares: $name - $errmsg\n"); }; if (@resources) { foreach my $href (@resources) { print "-----\n"; foreach(keys %$href) { print "$_: $href->{$_}\n"; } } } else { print "No shares found\n"; }