Name | <%$device->{name}|h%> | ||
---|---|---|---|
Location / Contact | <%$device->{location} || '[Not Set]' |h%> / <%$device->{contact} || '[Not Set]' |h%> | ||
Model / Serial | <%$device->{vendor}%> <%$device->{model}%><% defined $device->{snmp_class} ? ' ('.$device->{snmp_class}.')' :'' |h %> / <%$device->{serial} || 'Unknown'%> | ||
OS / Version | <%$device->{os} || 'Unknown'%> / <%$device->{os_ver} || 'Unknown'%> | ||
Description | <%$device->{description}|h%> | ||
Timestamps |
uptime <% $m->comp('SELF:uptime', uptime => $device->{uptime})%> discover <% scalar localtime($device->{last_discover}) %> % if (defined $device->{last_arpnip}) { arpnip <% scalar localtime $device->{last_arpnip}%> % } % if (defined $device->{last_macsuck}) { macsuck <% scalar localtime $device->{last_macsuck}%> % } |
||
Power |
% if (defined $device->{fan}) {
Fan : <%$device->{fan}%>
% }
% if (defined $device->{ps1_status}) {
PS1 [<%$device->{ps1_type}%>] : <%$device->{ps1_status}%>
% }
% if (defined $device->{ps2_status}) {
PS2 [<%$device->{ps2_type}%>] : <%$device->{ps2_status}%>
% }
% if (defined $device->{poe} and scalar @{$device->{poe}}) {
% foreach my $poe (@{$device->{poe}}) {
POE module <%$poe->{module}%> : <%$poe->{status}%>, <%$poe->{stats}->{ports}%> power-capable ports, <%$poe->{stats}->{on}%> powered (<%$poe->{stats}->{disabled}%> admin disabled, <%$poe->{stats}->{err}%> errors), <%$poe->{stats}->{committed}%>/<%$poe->{power}%> watts committed. % } % } |
||
$ip | $dns | $port | $subnet |
<%$port->{portdisp}%> | <%perl> foreach my $col (sort keys %port_cols){ my $colname = $port_cols{$col}->[0]; my $colcheck = $port_cols{$col}->[1]; next unless $colcheck; my $val = $port->{$col}; # Munge Port Columns if ($col eq 'duplex') { $val = defined $val ? $val : '[NA]'; my $duplex_admin = $port->{duplex_admin}; $duplex_admin = defined $duplex_admin ? $duplex_admin : '[NA]'; $val .= "/$duplex_admin"; } if ($col eq 'lastchange'){ # lastchange is a timestamp of the sysUpTime # we subtract it from the current uptime to find out how many # seconds*100 it was, then we subtract that from the current time to # see when that was. my $diff_sec = ($device->{uptime} - $val) / 100; $val = scalar localtime($device->{last_discover} - $diff_sec); } %perl>\ % if (defined $val) { <% $val |h %> \ % } else { \ % } | <%perl> } # VLAN Column my $vlan_ids = $port->{vlans} || ''; # munging any col with HTML is done after escaping... HTML::Mason::Escapes::html_entities_escape( \$vlan_ids ); # vlan col needs wrapping with\ % if (defined $vlan_ids) { <% $vlan_ids %> \ % } else { \ % } | % # Connected Devices Column
<%perl>
# CDP speaking device connected
if (defined $remote_ip) {
my $name = '';
my $link = '';
my $remote_dev = sql_hash('device',['ip','dns'],
{'ip'=>$remote_ip});
my $alias = sql_hash('device_ip',['ip','dns'],
{'alias'=>$remote_ip});
# Resolve IP address squawked to root device
if (defined $alias) {
$remote_ip = $alias->{ip};
$name = $alias->{dns};
$name = defined $name ? $name : $remote_ip;
$name =~ s/\Q$domain\E//;
$name .= " ($remote_port)";
$name = "$name";
$link = "device.html?ip=$remote_ip&port=$remote_port";
# Not an alias, use info from device table
} elsif (defined $remote_dev) {
$name = $remote_dev->{'dns'};
$name = defined $name ? $name : $remote_ip;
$name =~ s/\Q$domain\E//;
$name .= " ($remote_port)";
$name = "$name";
$link = "device.html?ip=$remote_ip&port=$remote_port";
# Found a device, but not in our database
} else {
if ($arg_node_dns eq 'on') {
$name = hostname($remote_ip) || $remote_ip;
$name =~ s/\Q$domain\E//;
} else {
$name = $remote_ip;
}
my $spanclass = (defined $remote_type and $remote_type =~ /ip.phone/i) ?
'ip-phone' : 'dead-link';
$name = "$name";
$name .= " ($remote_port)";
$name .= " ($remote_type)" if defined $remote_type; $name .= "/($remote_id)" if defined $remote_id; $link = "node.html?node=$remote_ip"; } %perl> <%$name%> \ <%perl> } # Show SSIDs my $portssids = $port->{ssids} || []; my $ssidbr = defined($remote_ip); foreach my $ssid (@$portssids) { my $id = $ssid->{ssid}; my $bcast = $ssid->{broadcast} ? "(B)" : ""; $m->out(" \n") if $ssidbr; $ssidbr = 1; %perl> SSID: <%$id%> <%$bcast%> <%perl> } # Show connected nodes my $seen_macs=0; my $portnodes = $port->{macs} || []; foreach my $node (sort {$a->{mac} cmp $b->{mac}} @$portnodes) { my $mac = $node->{mac}; my $active = $node->{active}; my $time_last = $node->{time_last}; # Connected Device Age Stamp? my $age = $now - $time_last; $age = sprintf("%d", ($age / (60*60*24))); my $show_age = ($arg_age eq 'on' and $age > 0) ? " ($age days)" : ''; # Show Archived Data? next unless ($active or $arg_arch eq 'on'); $m->out(" \n") if ((defined $remote_ip or @$portssids) and $seen_macs == 0); $seen_macs++; %perl> <% $mac%><%$show_age%><% $active ? '' : '*'%> <%perl> # Show node_ips? if ($arg_node_ip eq 'on' and defined $node_ips->{$mac}) { foreach my $ip (sort sort_ip @{$node_ips->{$mac}}) { # Show Node DNS ? my $host = $ip; if ($arg_node_dns eq 'on'){ $host = hostname($ip) || $ip; $host =~ s/\Q$domain\E//; # Add IP if we found a hostname. $host .= " ($ip)" if ($host ne $ip); } %perl> <%$host%> <%perl> } # /each node_ip } # /if node_ip # Show node_nbts? if ($arg_node_nbt eq 'on' and defined $node_nbts->{$mac}) { foreach my $nbt (sort @{$node_nbts->{$mac}}) { %perl> \\<%$nbt->{domain}%>\<%$nbt->{nbname}%> <%$nbt->{nbuser} || '[No User]'%>@<%$nbt->{ip}|h%> <%perl> } # /each node_nbt } # /if node_nbt } # /each node # Place holder for no connected devices unless ($seen_macs or defined $remote_ip) { $m->out(' '); } # end connected dev col. %perl> |
% # Port Control Column
\
% if ($device->{dns} =~ /^hub/i and $port_info) {
![]() ![]() ![]() ![]() |
Ports: | [ Admin Disabled ] [ Link Down ] [ Blocking ] [ IP Phone ] [ Discovered Neighbor not accessible ] |
---|---|
Admin: |
![]() ![]() ![]() ![]() ![]() |
Settings: |
Entries without timestamps are less than 1 day old.
* denotes archived data |