2010-01-03 22:13:50 +00:00
< ? php
2011-03-15 11:39:50 +00:00
echo ( " Q-BRIDGE-MIB VLANs : " );
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
$vlanversion = snmp_get ( $device , " dot1qVlanVersionNumber.0 " , " -Oqv " , " Q-BRIDGE-MIB " );
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
if ( $vlanversion == 'version1' )
{
echo ( " VLAN $vlanversion " );
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
$vlans = snmp_walk ( $device , " dot1qVlanFdbId " , $options = " -Oqn " , $mib = " Q-BRIDGE-MIB " );
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
foreach ( explode ( " \n " , $vlans ) as $vlan_oid )
{
list ( $oid , $vlan_index ) = split ( ' ' , $vlan_oid );
$oid_ex = explode ( '.' , $oid );
$vlan = $oid_ex [ count ( $oid_ex ) - 1 ];
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
$vlan_descr_cmd = $config [ 'snmpget' ] . " -M " . $config [ 'mibdir' ] . " -m Q-BRIDGE-MIB -O nvq - " . $device [ 'snmpver' ] . " -c " . $device [ 'community' ] . " " . $device [ 'hostname' ] . " : " . $device [ 'port' ] . " " ;
$vlan_descr_cmd .= " dot1qVlanStaticName. $vlan |grep -v \" No Such Instance currently exists at this OID \" " ;
$vlan_descr = shell_exec ( $vlan_descr_cmd );
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
$vlan_descr = trim ( str_replace ( " \" " , " " , $vlan_descr ));
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
if ( mysql_result ( mysql_query ( " SELECT COUNT(vlan_id) FROM `vlans` WHERE `device_id` = ' " . $device [ 'device_id' ] . " ' AND `vlan_domain` = '' AND `vlan_vlan` = ' " . $vlan . " ' " ), 0 ) == '0' )
{
mysql_query ( " INSERT INTO `vlans` (`device_id`,`vlan_domain`,`vlan_vlan`, `vlan_descr`) VALUES ( " . $device [ 'device_id' ] . " ,'',' $vlan ', ' " . mres ( $vlan_descr ) . " ') " );
echo ( " + " );
} else {
mysql_query ( " UPDATE `vlans` SET `vlan_descr`=' " . mres ( $vlan_descr ) . " ' WHERE `device_id`=' " . $device [ 'device_id' ] . " ' AND `vlan_vlan`=' " . $vlan . " ' " );
echo ( " . " );
}
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
$this_vlans [] = $vlan ;
}
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
$device_vlans = mysql_query ( " SELECT * FROM `vlans` WHERE `device_id` = ' " . $device [ 'device_id' ] . " ' " );
while ( $dev_vlan = mysql_fetch_array ( $device_vlans ))
{
unset ( $vlan_exists );
foreach ( $this_vlans as $test_vlan )
{
if ( $test_vlan == $dev_vlan [ 'vlan_vlan' ]) { $vlan_exists = 1 ; }
2010-01-03 22:13:50 +00:00
}
2011-03-15 11:39:50 +00:00
if ( ! $vlan_exists )
{
mysql_query ( " DELETE FROM `vlans` WHERE `vlan_id` = ' " . $dev_vlan [ 'vlan_id' ] . " ' " );
echo ( " - " );
if ( $debug ) { echo ( " Deleted VLAN " . $dev_vlan [ 'vlan_vlan' ] . " \n " ); }
2010-01-03 22:13:50 +00:00
}
}
2011-03-15 11:39:50 +00:00
}
unset ( $this_vlans );
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
echo ( " \n " );
2010-01-03 22:13:50 +00:00
2011-03-15 11:39:50 +00:00
?>