2009-09-07 11:07:59 +00:00
|
|
|
<?php
|
2009-05-12 08:44:00 +00:00
|
|
|
|
2012-01-12 11:16:38 +00:00
|
|
|
if ($device['os_group'] == 'cisco') {
|
2017-12-20 15:48:35 -06:00
|
|
|
$datas = snmp_walk($device, 'cipMacSwitchedBytes', '-Oqn', 'CISCO-IP-STAT-MIB');
|
|
|
|
|
2011-03-15 11:39:50 +00:00
|
|
|
foreach (explode("\n", $datas) as $data) {
|
2009-05-12 08:44:00 +00:00
|
|
|
[$oid] = explode(' ', $data);
|
|
|
|
$oid = str_replace('.1.3.6.1.4.1.9.9.84.1.2.1.1.4.', '', $oid);
|
|
|
|
[$if, $direction, $a_a, $a_b, $a_c, $a_d, $a_e, $a_f] = explode('.', $oid);
|
|
|
|
unset($interface);
|
2014-01-13 17:43:58 +00:00
|
|
|
$interface = dbFetchRow('SELECT * FROM `ports` WHERE `device_id` = ? AND `ifIndex` = ?', [$device['device_id'], $if]);
|
2009-05-12 08:44:00 +00:00
|
|
|
$ah_a = zeropad(dechex($a_a));
|
|
|
|
$ah_b = zeropad(dechex($a_b));
|
|
|
|
$ah_c = zeropad(dechex($a_c));
|
|
|
|
$ah_d = zeropad(dechex($a_d));
|
|
|
|
$ah_e = zeropad(dechex($a_e));
|
|
|
|
$ah_f = zeropad(dechex($a_f));
|
2019-05-21 03:56:19 +02:00
|
|
|
$mac = "$ah_a$ah_b$ah_c$ah_d$ah_e$ah_f";
|
|
|
|
|
|
|
|
if ($interface) {
|
|
|
|
if (dbFetchCell('SELECT COUNT(*) from mac_accounting WHERE port_id = ? AND mac = ?', [$interface['port_id'], $mac])) {
|
2009-09-24 14:38:17 +00:00
|
|
|
echo '.';
|
2016-08-28 12:32:58 -05:00
|
|
|
} else {
|
2019-05-21 03:56:19 +02:00
|
|
|
dbInsert(['port_id' => $interface['port_id'], 'mac' => $mac], 'mac_accounting');
|
2009-09-24 14:38:17 +00:00
|
|
|
echo '+';
|
2011-03-16 17:53:20 +00:00
|
|
|
}
|
2015-07-13 20:10:26 +02:00
|
|
|
}
|
|
|
|
}//end foreach
|
|
|
|
|
2012-01-12 11:16:38 +00:00
|
|
|
echo "\n";
|
|
|
|
} //end if
|
2010-02-28 22:04:15 +00:00
|
|
|
|
|
|
|
// FIXME - NEEDS TO REMOVE STALE ENTRIES?? :O
|