2007-04-03 14:10:23 +00:00
< ? php
2011-10-18 14:41:19 +00:00
$pagetitle [] = " Ports " ;
2012-05-25 12:24:34 +00:00
// Set Defaults here
2007-04-03 14:10:23 +00:00
2016-08-18 20:28:22 -05:00
if ( ! isset ( $vars [ 'format' ])) {
2015-07-13 20:10:26 +02:00
$vars [ 'format' ] = " list_basic " ;
}
2007-04-03 14:10:23 +00:00
2011-09-15 22:59:11 +00:00
print_optionbar_start ();
2011-09-14 13:38:01 +00:00
2014-01-13 10:05:19 +00:00
echo ( '<span style="font-weight: bold;">Lists</span> » ' );
2015-07-13 20:10:26 +02:00
$menu_options = array ( 'basic' => 'Basic' , 'detail' => 'Detail' );
2014-01-13 10:05:19 +00:00
$sep = " " ;
2015-07-13 20:10:26 +02:00
foreach ( $menu_options as $option => $text ) {
echo ( $sep );
if ( $vars [ 'format' ] == " list_ " . $option ) {
echo ( " <span class='pagemenu-selected'> " );
}
echo ( '<a href="' . generate_url ( $vars , array ( 'format' => " list_ " . $option )) . '">' . $text . '</a>' );
if ( $vars [ 'format' ] == " list_ " . $option ) {
echo ( " </span> " );
}
$sep = " | " ;
2014-01-13 10:05:19 +00:00
}
?>
|
< span style = " font-weight: bold; " > Graphs </ span > & #187;
< ? php
$menu_options = array ( 'bits' => 'Bits' ,
2015-07-13 20:10:26 +02:00
'upkts' => 'Unicast Packets' ,
'nupkts' => 'Non-Unicast Packets' ,
'errors' => 'Errors' );
2014-01-13 10:05:19 +00:00
$sep = " " ;
2015-07-13 20:10:26 +02:00
foreach ( $menu_options as $option => $text ) {
echo ( $sep );
if ( $vars [ 'format' ] == 'graph_' . $option ) {
echo ( '<span class="pagemenu-selected">' );
}
echo ( '<a href="' . generate_url ( $vars , array ( 'format' => 'graph_' . $option )) . '">' . $text . '</a>' );
if ( $vars [ 'format' ] == 'graph_' . $option ) {
echo ( " </span> " );
}
$sep = " | " ;
2014-01-13 10:05:19 +00:00
}
echo ( '<div style="float: right;">' );
?>
2016-08-18 20:28:22 -05:00
< a href = " csv.php/report=<?php echo generate_url( $vars , array('format'=>'')); ?> " title = " Export as CSV " target = " _blank " > Export CSV </ a > |
2014-01-13 10:05:19 +00:00
< a href = " <?php echo(generate_url( $vars )); ?> " title = " Update the browser URL to reflect the search criteria. " > Update URL </ a > |
< ? php
2015-07-13 20:10:26 +02:00
if ( isset ( $vars [ 'searchbar' ]) && $vars [ 'searchbar' ] == " hide " ) {
2014-01-13 10:05:19 +00:00
echo ( '<a href="' . generate_url ( $vars , array ( 'searchbar' => '' )) . '">Search</a>' );
2016-08-18 20:28:22 -05:00
} else {
2014-01-13 10:05:19 +00:00
echo ( '<a href="' . generate_url ( $vars , array ( 'searchbar' => 'hide' )) . '">Search</a>' );
2015-07-13 20:10:26 +02:00
}
2014-01-13 10:05:19 +00:00
2015-07-13 20:10:26 +02:00
echo ( " | " );
2014-01-13 10:05:19 +00:00
2015-07-13 20:10:26 +02:00
if ( isset ( $vars [ 'bare' ]) && $vars [ 'bare' ] == " yes " ) {
2014-01-13 10:05:19 +00:00
echo ( '<a href="' . generate_url ( $vars , array ( 'bare' => '' )) . '">Header</a>' );
2016-08-18 20:28:22 -05:00
} else {
2014-01-13 10:05:19 +00:00
echo ( '<a href="' . generate_url ( $vars , array ( 'bare' => 'yes' )) . '">Header</a>' );
2015-07-13 20:10:26 +02:00
}
2014-01-13 10:05:19 +00:00
echo ( '</div>' );
print_optionbar_end ();
print_optionbar_start ();
2016-08-18 20:28:22 -05:00
if (( isset ( $vars [ 'searchbar' ]) && $vars [ 'searchbar' ] != " hide " ) || ! isset ( $vars [ 'searchbar' ])) {
2011-09-14 13:38:01 +00:00
?>
2014-01-13 10:05:19 +00:00
< form method = 'post' action = '' class = 'form-inline' role = 'form' >
< div class = " form-group " >
< select name = 'device_id' id = 'device_id' class = 'form-control input-sm' >
2011-09-20 16:03:54 +00:00
< option value = '' > All Devices </ option >
2011-09-14 13:38:01 +00:00
< ? php
2016-08-18 20:28:22 -05:00
if ( $_SESSION [ 'userlevel' ] >= 5 ) {
$results = dbFetchRows ( " SELECT `device_id`,`hostname` FROM `devices` GROUP BY `hostname` ORDER BY `hostname` " );
} else {
$results = dbFetchRows ( " SELECT `D`.`device_id`,`D`.`hostname` FROM `devices` AS `D`, `devices_perms` AS `P` WHERE `P`.`user_id` = ? AND `P`.`device_id` = `D`.`device_id` GROUP BY `hostname` ORDER BY `hostname` " , array ( $_SESSION [ 'user_id' ]));
}
foreach ( $results as $data ) {
echo ( ' <option value="' . $data [ 'device_id' ] . '"' );
if ( $data [ 'device_id' ] == $vars [ 'device_id' ]) {
echo ( " selected " );
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
echo ( " > " . $data [ 'hostname' ] . " </option> " );
}
2014-06-25 14:51:50 +01:00
2016-08-18 20:28:22 -05:00
if ( $_SESSION [ 'userlevel' ] < 5 ) {
$results = dbFetchRows ( " SELECT `D`.`device_id`,`D`.`hostname` FROM `ports` AS `I` JOIN `devices` AS `D` ON `D`.`device_id`=`I`.`device_id` JOIN `ports_perms` AS `PP` ON `PP`.`port_id`=`I`.`port_id` WHERE `PP`.`user_id` = ? AND `PP`.`port_id` = `I`.`port_id` GROUP BY `hostname` ORDER BY `hostname` " , array ( $_SESSION [ 'user_id' ]));
} else {
$results = array ();
}
foreach ( $results as $data ) {
echo ( ' <option value="' . $data [ 'device_id' ] . '"' );
if ( $data [ 'device_id' ] == $vars [ 'device_id' ]) {
echo ( " selected " );
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
echo ( " > " . $data [ 'hostname' ] . " </option> " );
}
2014-06-25 14:51:50 +01:00
2011-09-14 13:38:01 +00:00
?>
</ select >
2016-09-11 10:23:16 -05:00
< input type = " text " name = " hostname " id = " hostname " title = " Hostname " class = " form-control input-sm " < ? php if ( strlen ( $vars [ 'hostname' ])) {
2016-08-18 20:28:22 -05:00
echo ( 'value="' . $vars [ 'hostname' ] . '"' );
} ?> placeholder="Hostname" />
2014-01-13 10:05:19 +00:00
</ div >
< div class = " form-group " >
< select name = " state " id = " state " class = " form-control input-sm " >
2011-09-20 16:03:54 +00:00
< option value = " " > All States </ option >
2016-08-18 20:28:22 -05:00
< option value = " up " < ? php if ( $vars [ 'state' ] == " up " ) {
echo ( " selected " );
} ?> >Up</option>
< option value = " down " < ? php if ( $vars [ 'state' ] == " down " ) {
echo ( " selected " );
} ?> >Down</option>
< option value = " admindown " < ? php if ( $vars [ 'state' ] == " admindown " ) {
echo ( " selected " );
} ?> >Shutdown</option>
2011-09-14 13:38:01 +00:00
</ select >
2011-09-14 14:28:42 +00:00
2014-01-13 10:05:19 +00:00
< select name = " ifSpeed " id = " ifSpeed " class = " form-control input-sm " >
< option value = " " > All Speeds </ option >
2011-09-14 13:38:01 +00:00
< ? php
2015-04-22 21:35:16 +01:00
2016-08-18 20:28:22 -05:00
if ( is_admin () === true || is_read () === true ) {
$sql = " SELECT `ifSpeed` FROM `ports` GROUP BY `ifSpeed` ORDER BY `ifSpeed` " ;
} else {
$sql = " SELECT `ifSpeed` FROM `ports` AS `I`, `devices` AS `D`, `devices_perms` AS `P`, `ports_perms` AS `PP` WHERE ((`P`.`user_id` = ? AND `P`.`device_id` = `D`.`device_id`) OR (`PP`.`user_id` = ? AND `PP`.`port_id` = `I`.`port_id` AND `I`.`device_id` = `D`.`device_id`)) AND `D`.`device_id` = `I`.`device_id` GROUP BY `ifSpeed` ORDER BY `ifSpeed` " ;
$param [] = array ( $_SESSION [ 'user_id' ], $_SESSION [ 'user_id' ]);
}
foreach ( dbFetchRows ( $sql , $param ) as $data ) {
if ( $data [ 'ifSpeed' ]) {
echo ( " <option value=' " . $data [ 'ifSpeed' ] . " ' " );
if ( $data [ 'ifSpeed' ] == $vars [ 'ifSpeed' ]) {
echo ( " selected " );
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
echo ( " > " . humanspeed ( $data [ 'ifSpeed' ]) . " </option> " );
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
}
2011-09-14 13:38:01 +00:00
?>
</ select >
2014-01-13 10:05:19 +00:00
</ div >
< div class = " form-group " >
< select name = " ifType " id = " ifType " class = " form-control input-sm " >
2011-09-20 16:03:54 +00:00
< option value = " " > All Media </ option >
2011-09-14 13:38:01 +00:00
< ? php
2015-04-22 21:35:16 +01:00
2016-08-18 20:28:22 -05:00
if ( is_admin () === true || is_read () === true ) {
$sql = " SELECT `ifType` FROM `ports` GROUP BY `ifType` ORDER BY `ifType` " ;
} else {
$sql = " SELECT `ifType` FROM `ports` AS `I`, `devices` AS `D`, `devices_perms` AS `P`, `ports_perms` AS `PP` WHERE ((`P`.`user_id` = ? AND `P`.`device_id` = `D`.`device_id`) OR (`PP`.`user_id` = ? AND `PP`.`port_id` = `I`.`port_id` AND `I`.`device_id` = `D`.`device_id`)) AND `D`.`device_id` = `I`.`device_id` GROUP BY `ifType` ORDER BY `ifType` " ;
$param [] = array ( $_SESSION [ 'user_id' ], $_SESSION [ 'user_id' ]);
}
foreach ( dbFetchRows ( $sql , $param ) as $data ) {
if ( $data [ 'ifType' ]) {
echo ( ' <option value="' . $data [ 'ifType' ] . '"' );
if ( $data [ 'ifType' ] == $vars [ 'ifType' ]) {
echo ( " selected " );
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
echo ( " > " . $data [ 'ifType' ] . " </option> " );
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
}
2011-09-14 13:38:01 +00:00
?>
</ select >
2014-01-13 10:05:19 +00:00
< select name = " port_descr_type " id = " port_descr_type " class = " form-control input-sm " >
2011-09-20 16:03:54 +00:00
< option value = " " > All Port Types </ option >
2011-09-14 14:28:42 +00:00
< ? php
2015-04-22 21:35:16 +01:00
2016-08-18 20:28:22 -05:00
if ( is_admin () === true || is_read () === true ) {
$sql = " SELECT `port_descr_type` FROM `ports` GROUP BY `port_descr_type` ORDER BY `port_descr_type` " ;
} else {
$sql = " SELECT `port_descr_type` FROM `ports` AS `I`, `devices` AS `D`, `devices_perms` AS `P`, `ports_perms` AS `PP` WHERE ((`P`.`user_id` = ? AND `P`.`device_id` = `D`.`device_id`) OR (`PP`.`user_id` = ? AND `PP`.`port_id` = `I`.`port_id` AND `I`.`device_id` = `D`.`device_id`)) AND `D`.`device_id` = `I`.`device_id` GROUP BY `port_descr_type` ORDER BY `port_descr_type` " ;
$param [] = array ( $_SESSION [ 'user_id' ], $_SESSION [ 'user_id' ]);
}
$ports = dbFetchRows ( $sql , $param );
foreach ( $ports as $data ) {
if ( $data [ 'port_descr_type' ]) {
echo ( ' <option value="' . $data [ 'port_descr_type' ] . '"' );
if ( $data [ 'port_descr_type' ] == $vars [ 'port_descr_type' ]) {
echo ( " selected " );
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
echo ( " > " . ucfirst ( $data [ 'port_descr_type' ]) . " </option> " );
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
}
2011-09-14 14:28:42 +00:00
?>
2014-01-13 10:05:19 +00:00
</ select >
</ div >
< div class = " form-group " >
2016-08-18 20:28:22 -05:00
< input title = " Port Description " type = " text " name = " ifAlias " id = " ifAlias " class = " form-control input-sm " < ? php if ( strlen ( $vars [ 'ifAlias' ])) {
echo ( 'value="' . $vars [ 'ifAlias' ] . '"' );
} ?> placeholder="Port Description"/>
2016-09-11 10:23:16 -05:00
< select title = " Location " name = " location " id = " location " class = " form-control input-sm " >
2011-09-19 11:15:01 +00:00
< option value = " " > All Locations </ option >
2015-07-13 20:10:26 +02:00
< ? php
// FIXME function?
2016-08-18 20:28:22 -05:00
foreach ( getlocations () as $location ) {
if ( $location ) {
echo ( '<option value="' . $location . '"' );
if ( $location == $vars [ 'location' ]) {
echo ( " selected " );
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
echo ( " > " . $location . " </option> " );
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
}
?>
2011-09-19 11:15:01 +00:00
</ select >
2014-01-13 10:05:19 +00:00
</ div >
< div class = " form-group " >
< label for = " ignore " > Ignored </ label >
2016-09-11 10:23:16 -05:00
< input type = checkbox id = " ignore " name = " ignore " value = " 1 " < ? php if ( $vars [ 'ignore' ]) {
2016-08-18 20:28:22 -05:00
echo ( " checked " );
2016-09-11 10:23:16 -05:00
} ?> >
2015-06-09 23:21:15 +01:00
< label for = " disabled " > Disabled </ label >
2016-09-11 10:23:16 -05:00
< input type = checkbox id = " disabled " name = " disabled " value = 1 < ? php if ( $vars [ 'disabled' ]) {
2016-08-18 20:28:22 -05:00
echo ( " checked " );
2016-09-11 10:23:16 -05:00
} ?> >
2014-01-13 10:05:19 +00:00
< label for = " deleted " > Deleted </ label >
2016-09-11 10:23:16 -05:00
< input type = checkbox id = " deleted " name = " deleted " value = 1 < ? php if ( $vars [ 'deleted' ]) {
2016-08-18 20:28:22 -05:00
echo ( " checked " );
2016-09-11 10:23:16 -05:00
} ?> >
2014-01-13 10:05:19 +00:00
</ div >
2014-06-15 19:16:06 +01:00
< button type = " submit " class = " btn btn-default btn-sm " > Search </ button >
< a class = " btn btn-default btn-sm " href = " <?php echo(generate_url(array('page' => 'ports', 'section' => $vars['section'] , 'bare' => $vars['bare'] ))); ?> " title = " Reset critera to default. " > Reset </ a >
2011-09-20 16:03:54 +00:00
</ td >
</ form >
</ tr >
2011-09-14 13:38:01 +00:00
</ table >
2015-07-13 20:10:26 +02:00
< ? php
}
2011-09-14 13:38:01 +00:00
print_optionbar_end ();
$param = array ();
2016-08-18 20:28:22 -05:00
if ( ! isset ( $vars [ 'ignore' ])) {
2015-07-13 20:10:26 +02:00
$vars [ 'ignore' ] = " 0 " ;
}
2016-08-18 20:28:22 -05:00
if ( ! isset ( $vars [ 'disabled' ])) {
2015-07-13 20:10:26 +02:00
$vars [ 'disabled' ] = " 0 " ;
}
2016-08-18 20:28:22 -05:00
if ( ! isset ( $vars [ 'deleted' ])) {
2015-07-13 20:10:26 +02:00
$vars [ 'deleted' ] = " 0 " ;
}
2011-09-14 14:28:42 +00:00
2014-06-26 00:21:22 +01:00
$where = '' ;
2015-06-18 23:16:53 +01:00
$ignore_filter = 0 ;
$disabled_filter = 0 ;
2014-06-26 00:21:22 +01:00
2015-07-13 20:10:26 +02:00
foreach ( $vars as $var => $value ) {
if ( $value != " " ) {
switch ( $var ) {
2016-08-18 20:28:22 -05:00
case 'hostname' :
$where .= " AND D.hostname LIKE ? " ;
$param [] = " % " . $value . " % " ;
break ;
case 'location' :
$where .= " AND D.location LIKE ? " ;
$param [] = " % " . $value . " % " ;
break ;
case 'device_id' :
$where .= " AND D.device_id = ? " ;
$param [] = $value ;
break ;
case 'deleted' :
if ( $value == 1 ) {
$where .= " AND `I`.`deleted` = 1 " ;
$ignore_filter = 1 ;
}
break ;
case 'ignore' :
if ( $value == 1 ) {
$where .= " AND (I.ignore = 1 OR D.ignore = 1) AND I.deleted = 0 " ;
$ignore_filter = 1 ;
}
break ;
case 'disabled' :
if ( $value == 1 ) {
$where .= " AND `I`.`disabled` = 1 AND `I`.`deleted` = 0 " ;
$disabled_filter = 1 ;
}
break ;
case 'ifSpeed' :
if ( is_numeric ( $value )) {
$where .= " AND I. $var = ? " ;
$param [] = $value ;
}
break ;
case 'ifType' :
2015-07-13 20:10:26 +02:00
$where .= " AND I. $var = ? " ;
$param [] = $value ;
2016-08-18 20:28:22 -05:00
break ;
case 'ifAlias' :
case 'port_descr_type' :
$where .= " AND I. $var LIKE ? " ;
$param [] = " % " . $value . " % " ;
break ;
case 'errors' :
if ( $value == 1 ) {
$where .= " AND (I.`ifInErrors_delta` > '0' OR I.`ifOutErrors_delta` > '0') " ;
}
break ;
case 'state' :
if ( $value == " down " ) {
$where .= " AND I.ifAdminStatus = ? AND I.ifOperStatus = ? " ;
$param [] = " up " ;
$param [] = " down " ;
} elseif ( $value == " up " ) {
$where .= " AND I.ifAdminStatus = ? AND I.ifOperStatus = ? " ;
$param [] = " up " ;
$param [] = " up " ;
} elseif ( $value == " admindown " ) {
$where .= " AND I.ifAdminStatus = ? AND D.ignore = 0 " ;
$param [] = " down " ;
}
break ;
2015-06-18 23:16:53 +01:00
}
2011-09-20 16:03:54 +00:00
}
2011-09-14 13:38:01 +00:00
}
2015-06-18 23:16:53 +01:00
if ( $ignore_filter == 0 && $disabled_filter == 0 ) {
$where .= " AND `I`.`ignore` = 0 AND `I`.`disabled` = 0 AND `I`.`deleted` = 0 " ;
}
2012-05-25 10:34:01 +00:00
$query = " SELECT * FROM `ports` AS I, `devices` AS D WHERE I.device_id = D.device_id " . $where . " " . $query_sort ;
$row = 1 ;
list ( $format , $subformat ) = explode ( " _ " , $vars [ 'format' ]);
$ports = dbFetchRows ( $query , $param );
2015-07-13 20:10:26 +02:00
switch ( $vars [ 'sort' ]) {
case 'traffic' :
$ports = array_sort ( $ports , 'ifOctets_rate' , SORT_DESC );
break ;
case 'traffic_in' :
$ports = array_sort ( $ports , 'ifInOctets_rate' , SORT_DESC );
break ;
case 'traffic_out' :
$ports = array_sort ( $ports , 'ifOutOctets_rate' , SORT_DESC );
break ;
case 'packets' :
$ports = array_sort ( $ports , 'ifUcastPkts_rate' , SORT_DESC );
break ;
case 'packets_in' :
$ports = array_sort ( $ports , 'ifInUcastOctets_rate' , SORT_DESC );
break ;
case 'packets_out' :
$ports = array_sort ( $ports , 'ifOutUcastOctets_rate' , SORT_DESC );
break ;
case 'errors' :
$ports = array_sort ( $ports , 'ifErrors_rate' , SORT_DESC );
break ;
case 'speed' :
$ports = array_sort ( $ports , 'ifSpeed' , SORT_DESC );
break ;
case 'port' :
$ports = array_sort ( $ports , 'ifDescr' , SORT_ASC );
break ;
case 'media' :
$ports = array_sort ( $ports , 'ifType' , SORT_ASC );
break ;
case 'descr' :
$ports = array_sort ( $ports , 'ifAlias' , SORT_ASC );
break ;
case 'device' :
default :
$ports = array_sort ( $ports , 'hostname' , SORT_ASC );
2011-09-26 16:31:13 +00:00
}
2016-08-18 20:28:22 -05:00
if ( file_exists ( 'pages/ports/' . $format . '.inc.php' )) {
2015-07-13 20:10:26 +02:00
require 'pages/ports/' . $format . '.inc.php' ;
2011-09-14 13:38:01 +00:00
}
?>