2010-07-18 18:28:32 +00:00
< ? php
2015-07-13 20:10:26 +02:00
if ( $device [ 'type' ] == 'network' || $device [ 'type' ] == 'firewall' || $device [ 'type' ] == 'wireless' ) {
if ( $device [ 'os' ] == 'airos' ) {
2016-10-06 18:49:40 +02:00
echo 'It Is Airos' . PHP_EOL ;
2015-07-13 20:10:26 +02:00
include 'includes/polling/mib/ubnt-airmax-mib.inc.php' ;
2016-10-14 19:10:12 -04:00
} elseif ( $device [ 'os' ] == 'airos-af' ) {
2016-10-06 18:49:40 +02:00
echo 'It Is AirFIBER' . PHP_EOL ;
2015-07-13 20:10:26 +02:00
include 'includes/polling/mib/ubnt-airfiber-mib.inc.php' ;
2016-10-14 19:10:12 -04:00
} elseif ( $device [ 'os' ] == 'siklu' ) {
2016-10-06 18:49:40 +02:00
echo 'It is Siklu' . PHP_EOL ;
2015-07-13 20:10:26 +02:00
include 'includes/polling/mib/siklu-mib.inc.php' ;
2016-10-14 19:10:12 -04:00
} elseif ( $device [ 'os' ] == 'saf' ) {
2016-10-06 18:49:40 +02:00
echo 'It is SAF Tehnika' . PHP_EOL ;
include 'includes/polling/mib/saf-mib.inc.php' ;
2016-10-14 19:10:12 -04:00
} elseif ( $device [ 'os' ] == 'sub10' ) {
2016-10-06 18:49:40 +02:00
echo 'It is Sub10' . PHP_EOL ;
2015-09-11 18:40:51 +01:00
include 'includes/polling/mib/sub10-mib.inc.php' ;
2016-10-14 19:10:12 -04:00
} elseif ( $device [ 'os' ] == 'airport' ) {
2016-10-06 18:49:40 +02:00
// # GENERIC FRAMEWORK, FILLING VARIABLES
2015-07-13 20:10:26 +02:00
echo 'Checking Airport Wireless clients... ' ;
2015-04-21 11:37:47 +01:00
2015-07-13 20:10:26 +02:00
$wificlients1 = ( snmp_get ( $device , 'wirelessNumber.0' , '-OUqnv' , 'AIRPORT-BASESTATION-3-MIB' ) + 0 );
2010-07-18 18:28:32 +00:00
2015-07-13 20:10:26 +02:00
echo $wificlients1 . " clients \n " ;
2010-07-18 18:28:32 +00:00
2015-07-13 20:10:26 +02:00
// FIXME Also interesting to poll? dhcpNumber.0 for number of active dhcp leases
2016-10-14 19:10:12 -04:00
} elseif ( $device [ 'os' ] == 'ios' and substr ( $device [ 'hardware' ], 0 , 4 ) == 'AIR-' || ( $device [ 'os' ] == 'ios' && strpos ( $device [ 'hardware' ], 'ciscoAIR' ) !== false )) {
2015-07-13 20:10:26 +02:00
echo 'Checking Aironet Wireless clients... ' ;
2011-03-16 01:11:27 +00:00
2015-07-13 20:10:26 +02:00
$wificlients1 = snmp_get ( $device , 'cDot11ActiveWirelessClients.1' , '-OUqnv' , 'CISCO-DOT11-ASSOCIATION-MIB' );
$wificlients2 = snmp_get ( $device , 'cDot11ActiveWirelessClients.2' , '-OUqnv' , 'CISCO-DOT11-ASSOCIATION-MIB' );
2010-07-18 18:28:32 +00:00
2015-07-13 20:10:26 +02:00
echo (( $wificlients1 + 0 ) . ' clients on dot11Radio0, ' . ( $wificlients2 + 0 ) . " clients on dot11Radio1 \n " );
2016-10-14 19:10:12 -04:00
} elseif ( $device [ 'os' ] == 'hpmsm' ) {
2016-01-14 20:09:18 +01:00
echo 'Checking HP MSM Wireless clients... ' ;
$wificlients1 = snmp_get ( $device , '.1.3.6.1.4.1.8744.5.25.1.7.2.0' , '-OUqnv' );
echo $wificlients1 . " clients \n " ;
2016-10-14 19:10:12 -04:00
} elseif ( $device [ 'os' ] == 'routeros' ) {
2016-10-06 18:49:40 +02:00
// MikroTik RouterOS
2015-07-13 20:10:26 +02:00
// Check inventory for wireless card in device. Valid types be here:
$wirelesscards = array (
'Wireless' ,
'Atheros' ,
);
foreach ( $wirelesscards as $wirelesscheck ) {
if ( dbFetchCell ( 'SELECT COUNT(*) FROM `entPhysical` WHERE `device_id` = ?AND `entPhysicalDescr` LIKE ?' , array ( $device [ 'device_id' ], '%' . $wirelesscheck . '%' )) >= '1' ) {
echo 'Checking RouterOS Wireless clients... ' ;
$wificlients1 = snmp_get ( $device , 'mtxrWlApClientCount' , '-OUqnv' , 'MIKROTIK-MIB' );
echo (( $wificlients1 + 0 ) . " clients \n " );
break ;
}
unset ( $wirelesscards );
}
2016-10-14 19:10:12 -04:00
} elseif ( $device [ 'os' ] == 'symbol' and ( stristr ( $device [ 'hardware' ], 'AP' ))) {
2015-07-13 20:10:26 +02:00
echo 'Checking Symbol Wireless clients... ' ;
2010-07-18 18:28:32 +00:00
2015-07-13 20:10:26 +02:00
$wificlients1 = snmp_get ( $device , '.1.3.6.1.4.1.388.11.2.4.2.100.10.1.18.1' , '-Ovq' , '""' );
2011-04-05 14:15:35 +00:00
2015-07-13 20:10:26 +02:00
echo (( $wificlients1 + 0 ) . ' clients on wireless connector, ' );
2016-10-14 19:10:12 -04:00
} elseif ( $device [ 'os' ] == 'unifi' ) {
2016-10-11 12:35:58 -04:00
echo 'Checking Unifi Wireless clients... ' ;
2016-11-01 10:57:38 -04:00
$clients = snmp_walk ( $device , 'unifiVapNumStations' , '-Oqv' , 'UBNT-UniFi-MIB' );
$bands = snmp_walk ( $device , 'unifiVapRadio' , '-Oqv' , 'UBNT-UniFi-MIB' );
2016-10-14 19:10:12 -04:00
$clients = explode ( " \n " , $clients );
$bands = explode ( " \n " , $bands );
foreach ( $bands as $index => $band_index ) {
if ( $band_index == " ng " ) {
$wificlients1 = $wificlients1 + $clients [ $index ] + 0 ;
} else {
$wificlients2 = $wificlients2 + $clients [ $index ] + 0 ;
}
}
2016-10-11 12:35:58 -04:00
2016-10-14 19:10:12 -04:00
echo (( $wificlients1 + 0 ) . ' clients on Radio0, ' . ( $wificlients2 + 0 ) . " clients on Radio1 \n " );
2016-10-17 11:02:43 -04:00
include 'includes/polling/mib/ubnt-unifi-mib.inc.php' ;
2011-04-05 14:15:35 +00:00
}
2011-09-08 13:36:32 +00:00
2016-11-01 10:57:38 -04:00
// Loop through all $wificlients# and data_update()
$i = 1 ;
while ( is_numeric ( $ { 'wificlients' . $i })) {
2016-01-10 19:31:39 +10:00
$tags = array (
'rrd_def' => 'DS:wificlients:GAUGE:600:-273:1000' ,
2016-11-01 10:57:38 -04:00
'rrd_name' => array ( 'wificlients' , " radio $i " ),
'radio' => $i ,
2015-08-18 16:26:55 +00:00
);
2016-11-01 10:57:38 -04:00
data_update ( $device , 'wificlients' , $tags , $ { 'wificlients' . $i });
2015-07-13 20:10:26 +02:00
$graphs [ 'wifi_clients' ] = true ;
2016-11-01 10:57:38 -04:00
unset ( $ { 'wificlients' . $i });
$i ++ ;
2010-07-18 18:28:32 +00:00
}
2015-07-13 20:10:26 +02:00
} //end if
2010-07-18 18:28:32 +00:00
2015-07-13 20:10:26 +02:00
echo " \n " ;