2009-07-31 10:53:54 +00:00
<? php
2011-04-13 12:41:01 +00:00
2011-03-16 23:10:10 +00:00
$hostname = $device [ 'hostname' ];
$hostid = $device [ 'interface_id' ];
$ifname = $interface [ 'ifDescr' ];
$ifIndex = $interface [ 'ifIndex' ];
$speed = humanspeed ( $interface [ 'ifSpeed' ]);
$ifalias = $interface [ 'name' ];
if ( $interface [ 'ifPhysAddress' ]) { $mac = " $interface[ifPhysAddress] " ; }
$color = "black" ;
if ( $interface [ 'ifAdminStatus' ] == "down" ) { $status = "<span class='grey'>Disabled</span>" ; }
if ( $interface [ 'ifAdminStatus' ] == "up" && $interface [ 'ifOperStatus' ] == "down" ) { $status = "<span class='red'>Enabled / Disconnected</span>" ; }
if ( $interface [ 'ifAdminStatus' ] == "up" && $interface [ 'ifOperStatus' ] == "up" ) { $status = "<span class='green'>Enabled / Connected</span>" ; }
$i = 1 ;
$inf = fixifName ( $ifname );
echo ( "<div style='clear: both;'>" );
if ( $_GET [ 'optd' ] == "top10" )
{
if ( $_GET [ 'opte' ])
{
$period = $_GET [ 'opte' ];
} else { $period = "1day" ; }
$from = "-" . $period ;
if ( $_GET [ 'optc' ])
{
$stat = $_GET [ 'optc' ];
} else { $stat = "bits" ; }
if ( $_GET [ 'optf' ])
{
$sort = $_GET [ 'optf' ];
} else { $sort = "in" ; }
echo ( "<div style='margin: 0px 0px 0px 0px'>
<div style=' margin:0px; float: left;';>
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Day</span><br />
2011-04-09 16:08:39 +00:00
<a href='" . $config [ 'base_url' ] . "/device/" . $device [ 'device_id' ] . "/port/" . $interface [ 'interface_id' ] .
2011-03-16 23:10:10 +00:00
"/macaccounting/ $stat /top10/1day/ $sort /'>
<img style='border: #5e5e5e 2px;' valign=middle src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] .
2011-03-28 09:11:05 +00:00
"&stat= $stat &type=port_mac_acc_total&sort= $sort &from=-1day&to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Two Day</span><br />
2011-04-09 16:08:39 +00:00
<a href='" . $config [ 'base_url' ] . "/device/" . $device [ 'device_id' ] . "/port/" . $interface [ 'interface_id' ] .
2011-03-16 23:10:10 +00:00
"/macaccounting/ $stat /top10/2day/ $sort /'>
<img style='border: #5e5e5e 2px;' valign=middle src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] .
2011-03-28 09:11:05 +00:00
"&stat= $stat &type=port_mac_acc_total&sort= $sort &from=-2day&to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Week</span><br />
2011-04-09 16:08:39 +00:00
<a href='" . $config [ 'base_url' ] . "/device/" . $device [ 'device_id' ] . "/port/" . $interface [ 'interface_id' ] . "/macaccounting/ $stat /top10/1week/ $sort /'>
2011-03-28 09:11:05 +00:00
<img style='border: #5e5e5e 2px;' valign=middle src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] . "&type=port_mac_acc_total&sort= $sort &stat= $stat &from=-1week&to=now&width=150&height=50' />
2009-10-28 13:49:37 +00:00
</a>
</div>
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
2011-03-16 23:10:10 +00:00
<span class=device-head>Month</span><br />
2011-04-09 16:08:39 +00:00
<a href='" . $config [ 'base_url' ] . "/device/" . $device [ 'device_id' ] . "/port/" . $interface [ 'interface_id' ] . "/macaccounting/ $stat /top10/1month/ $sort /'>
2011-03-28 09:11:05 +00:00
<img style='border: #5e5e5e 2px;' valign=middle src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] . "&type=port_mac_acc_total&sort= $sort &stat= $stat &from=-1month&to=now&width=150&height=50' />
2009-09-24 14:38:17 +00:00
</a>
</div>
2011-03-16 23:10:10 +00:00
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Year</span><br />
2011-04-09 16:08:39 +00:00
<a href='" . $config [ 'base_url' ] . "/device/" . $device [ 'device_id' ] . "/port/" . $interface [ 'interface_id' ] . "/macaccounting/ $stat /top10/1year/ $sort /'>
2011-03-28 09:11:05 +00:00
<img style='border: #5e5e5e 2px;' valign=middle src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] . "&type=port_mac_acc_total&sort= $sort &stat= $stat &from=-1year&to=now&width=150&height=50' />
2009-10-28 13:49:37 +00:00
</a>
</div>
2011-03-16 23:10:10 +00:00
</div>
<div style='float: left;'>
2011-03-28 09:11:05 +00:00
<img src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] . "&type=port_mac_acc_total&sort= $sort &stat= $stat &from= $from &to=now&width=745&height=300' />
2011-03-16 23:10:10 +00:00
</div>
<div style=' margin:0px; float: left;';>
2009-10-28 13:49:37 +00:00
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
2011-03-16 23:10:10 +00:00
<span class=device-head>Traffic</span><br />
2011-04-09 16:08:39 +00:00
<a href='" . $config [ 'base_url' ] . "/device/" . $device [ 'device_id' ] . "/port/" . $interface [ 'interface_id' ] . "/macaccounting/bits/top10/ $period / $sort /'>
2011-03-28 09:11:05 +00:00
<img style='border: #5e5e5e 2px;' valign=middle src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] . "&stat=bits&type=port_mac_acc_total&sort= $sort &from= $from &to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Packets</span><br />
2011-04-09 16:08:39 +00:00
<a href='" . $config [ 'base_url' ] . "/device/" . $device [ 'device_id' ] . "/port/" . $interface [ 'interface_id' ] . "/macaccounting/pkts/top10/ $period / $sort /'>
2011-03-28 09:11:05 +00:00
<img style='border: #5e5e5e 2px;' valign=middle src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] . "&stat=pkts&type=port_mac_acc_total&sort= $sort &from= $from &to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Top Input</span><br />
2011-04-09 16:08:39 +00:00
<a href='" . $config [ 'base_url' ] . "/device/" . $device [ 'device_id' ] . "/port/" . $interface [ 'interface_id' ] .
2011-03-16 23:10:10 +00:00
"/macaccounting/ $stat /top10/ $period /in/'>
<img style='border: #5e5e5e 2px;' valign=middle src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] .
2011-03-28 09:11:05 +00:00
"&stat= $stat &type=port_mac_acc_total&sort=in&from= $from &to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Top Output</span><br />
2011-04-09 16:08:39 +00:00
<a href='" . $config [ 'base_url' ] . "/device/" . $device [ 'device_id' ] . "/port/" . $interface [ 'interface_id' ] .
2011-03-16 23:10:10 +00:00
"/macaccounting/ $stat /top10/ $period /out/'>
<img style='border: #5e5e5e 2px;' valign=middle src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] .
2011-03-28 09:11:05 +00:00
"&stat= $stat &type=port_mac_acc_total&sort=out&from= $from &to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Top Aggregate</span><br />
2011-04-09 16:08:39 +00:00
<a href='" . $config [ 'base_url' ] . "/device/" . $device [ 'device_id' ] . "/port/" . $interface [ 'interface_id' ] .
2011-03-16 23:10:10 +00:00
"/macaccounting/ $stat /top10/ $period /both/'>
<img style='border: #5e5e5e 2px;' valign=middle src='" . $config [ 'base_url' ] . "/graph.php?id=" . $interface [ 'interface_id' ] .
2011-03-28 09:11:05 +00:00
"&stat= $stat &type=port_mac_acc_total&sort=both&from= $from &to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
</div>
</div>
2009-09-22 12:02:54 +00:00
" );
2011-03-16 23:10:10 +00:00
unset ( $query );
}
else
{
$query = mysql_query ( "SELECT *, (M.cipMacHCSwitchedBytes_input_rate + M.cipMacHCSwitchedBytes_output_rate) as bps FROM `mac_accounting` AS M,
`ports` AS I, `devices` AS D WHERE M.interface_id = '" . $interface [ 'interface_id' ] . "' AND I.interface_id = M.interface_id
AND I.device_id = D.device_id ORDER BY bps DESC" );
2011-04-13 12:41:01 +00:00
2011-04-06 13:54:50 +00:00
while ( $acc = mysql_fetch_assoc ( $query ))
2011-03-16 23:10:10 +00:00
{
if ( ! is_integer ( $i / 2 )) { $row_colour = $list_colour_a ; } else { $row_colour = $list_colour_b ; }
2011-04-06 13:54:50 +00:00
$addy = mysql_fetch_assoc ( mysql_query ( "SELECT * FROM ipv4_mac where mac_address = '" . $acc [ 'mac' ] . "'" ));
2011-04-13 12:41:01 +00:00
#$name = gethostbyaddr($addy['ipv4_address']); FIXME - Maybe some caching for this?
2011-04-06 13:54:50 +00:00
$arp_host = mysql_fetch_assoc ( mysql_query ( "SELECT * FROM ipv4_addresses AS A, ports AS I, devices AS D WHERE A.ipv4_address = '" . $addy [ 'ipv4_address' ] . "' AND I.interface_id = A.interface_id AND D.device_id = I.device_id" ));
2011-03-16 23:10:10 +00:00
if ( $arp_host ) { $arp_name = generate_device_link ( $arp_host ); $arp_name .= " " . generate_port_link ( $arp_host ); } else { unset ( $arp_if ); }
2011-04-13 12:41:01 +00:00
2011-03-16 23:10:10 +00:00
if ( $name == $addy [ 'ipv4_address' ]) { unset ( $name ); }
if ( mysql_result ( mysql_query ( "SELECT count(*) FROM bgpPeers WHERE device_id = '" . $acc [ 'device_id' ] . "' AND bgpPeerIdentifier = '" . $addy [ 'ipv4_address' ] . "'" ), 0 ))
{
$peer_query = mysql_query ( "SELECT * FROM bgpPeers WHERE device_id = '" . $acc [ 'device_id' ] . "' AND bgpPeerIdentifier = '" . $addy [ 'ipv4_address' ] . "'" );
2011-04-06 13:54:50 +00:00
$peer_info = mysql_fetch_assoc ( $peer_query );
2011-03-16 23:10:10 +00:00
} else { unset ( $peer_info ); }
if ( $peer_info )
{
$asn = "AS" . $peer_info [ 'bgpPeerRemoteAs' ]; $astext = $peer_info [ 'astext' ];
} else {
unset ( $as ); unset ( $astext ); unset ( $asn );
}
if ( $_GET [ 'optc' ])
{
2011-04-29 16:49:37 +00:00
$graph_type = "macaccounting_" . $_GET [ 'optc' ];
2011-03-16 23:10:10 +00:00
} else {
2011-04-29 16:49:37 +00:00
$graph_type = "macaccounting_bits" ;
2011-03-16 23:10:10 +00:00
}
if ( $_GET [ 'optd' ] == "thumbs" )
{
if ( ! $asn ) { $asn = "No Session" ; }
echo ( "<div style='display: block; padding: 3px; margin: 3px; min-width: 221px; max-width:221px; min-height:90px; max-height:90px; text-align: center; float: left; background-color: #e5e5e5;'>
" . $addy [ 'ipv4_address' ] . " - " . $asn . "
<a href='#' onmouseover= \" return overlib('\
<div style=\'font-size: 16px; padding:5px; font-weight: bold; color: #555555;\'>" . $name . " - " . $addy [ 'ipv4_address' ] . " - " . $asn . "</div>\
2011-03-28 09:11:05 +00:00
<img src=\'graph.php?id=" . $acc [ 'ma_id' ] . "&type= $graph_type &from=-2day&to= $now &width=450&height=150\'>\
2011-03-16 23:10:10 +00:00
', CENTER, LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 150); \" onmouseout= \" return nd(); \" >
2011-03-28 09:11:05 +00:00
<img src='graph.php?id=" . $acc [ 'ma_id' ] . "&type= $graph_type &from=-2day&to= $now &width=213&height=45'></a>
2011-03-16 23:10:10 +00:00
<span style='font-size: 10px;'>" . $name . "</span>
</div>" );
2009-05-11 13:43:59 +00:00
2009-09-22 12:02:54 +00:00
}
2011-03-16 23:10:10 +00:00
else
{
echo ( "<div style='background-color: $row_colour ; padding: 0px;'>" );
echo ( "
<table>
<tr>
<td class=list-large width=200>" . mac_clean_to_readable ( $acc [ 'mac' ]) . "</td>
<td class=list-large width=200>" . $addy [ 'ipv4_address' ] . "</td>
<td class=list-large width=500>" . $name . " " . $arp_name . "</td>
<td class=list-large width=100>" . formatRates ( $acc [ 'cipMacHCSwitchedBytes_input_rate' ] / 8 ) . "</td>
<td class=list-large width=100>" . formatRates ( $acc [ 'cipMacHCSwitchedBytes_output_rate' ] / 8 ) . "</td>
</tr>
</table>
" );
$peer_info [ 'astext' ];
2011-04-30 10:43:27 +00:00
$graph_array [ 'type' ] = $graph_type ;
$graph_array [ 'id' ] = $acc [ 'ma_id' ];
$graph_array [ 'height' ] = "100" ;
$graph_array [ 'width' ] = "216" ;
$graph_array [ 'to' ] = $now ;
echo ( '<tr bgcolor="' . $bg_colour . '"' . ( $bg_image ? ' background="' . $bg_image . '"' : '' ) . '"><td colspan="7">' );
include ( "includes/print-quadgraphs.inc.php" );
echo ( "</td></tr>" );
2011-03-16 23:10:10 +00:00
$i ++ ;
}
}
2009-10-28 13:49:37 +00:00
}
2011-04-13 12:41:01 +00:00
?>