note
mkmcconn
<p>[Piercer], I could not get your script to fail, but we seem to be using different versions of nbtstat.</p>
<p>I looked at your requirements, and although all the suggestions are good ones, it appears I might have something to offer in trying to satisfy all the requirements.
<ul>
<li> get the first 15 characters of each line
<li> no duplicates
<li> in comma delimited form.
</ul>
<code>
#!c:\perl\bin\perl -w
use strict;
# open(NB, "nbt.csv")|| die"Cant open input file nbt.csv";
# NBT.CSV simply contains ip addresses - one per line
# as DATA sample does
my %stathash = ();
while(my $ip = <DATA>){
chomp $ip;
#put nbtstat results in an array, one line = one element
my @nbtstat = split /\n/, `nbtstat -a $ip`;
#modify @nbtstat to discard gibberish (if desired)
for (@nbtstat){
s/^\s+//g;
$_ = substr($_,0,15);
s/[^a-z|A-Z|_|0-9|\040]//g;
s/\s+$//g;
}
# remove duplicates from array
my %uniq;
@nbtstat = grep { ! $uniq{$_} ++ } @nbtstat;
$stathash{$ip} = \@nbtstat;
}
for my $key (keys %stathash){
print "\n$key: \n";
#skip empty elements otherwise print to list
/.+/ and print "$_," for @{$stathash{$key}};
}
__DATA__
192.168.0.2
192.168.0.4
192.168.0.5
192.168.0.6
</code>
</p>
<p><b>Result:</b><br />
192.168.0.2: <br />
Local Area Conn,Node IpAddress,Host not found,<br>
192.168.0.4: <br />
Local Area Conn,Node IpAddress,NetBIOS Remote,Name,OWL,TISIMAGING,MAC Address,<br />
192.168.0.5: <br />
Local Area Conn,Node IpAddress,NetBIOS Remote,Name,DELTA,TISIMAGING,MAC Address,<br />
192.168.0.6: <br />
Local Area Conn,Node IpAddress,NetBIOS Remote,Name,PANAMA,TISIMAGING,MAC Address,<br />
</p>
<p>[mkmcconn]</p>
126557
126557