in reply to Re^4: snmpwalk to CSV #2
in thread snmpwalk to CSV #2

How can I get the name of the node being walked to display for each port or at least at the beginning of the ports for that node?

If including the IP address at the beginning of each csv data row is good enough to satisfy this, I already mentioned how to do that at the bottom of my first reply. (Maybe that wasn't clear enough?)

If you mean that you need to include the host name string from the original host list input file, that's not too much to add, given that the @hosts array and the @iplist array are parallel. Changing the print loop to read as follows ought to suffice -- I'm just adding a line after the first "for" statement, and making a slight change to the line following the second "for" statement:

for my $ip ( @iplist ) { my $host = shift @hosts; # get host name for this $ip for my $portid ( 0 .. $ipdata{$ip}{lastport} ) { my $outstr = "$host,"; for my $info ( @infolist ) { $outstr .= '"' . $ipdata{$ip}{$info}[$portid] . '",'; } $outstr =~ s/,$/\n/; # replace trailing comma print O $outstr; } }
If/when you learn more about programming, you should be able to look at the script as it stands and see ways of improving it (e.g. putting the host name into the hash along with all the port data, so that all the printing is done from data in the hash). Anyway, good luck.