2009-09-07 11:07:59 +00:00
< ? php
2007-04-10 23:43:42 +00:00
2010-12-26 21:57:21 +00:00
if ( $device [ 'os_group' ] == " ios " )
{
2008-03-22 23:09:35 +00:00
echo ( " Cisco VLANs : " );
2007-04-10 23:43:42 +00:00
2010-07-02 19:58:13 +00:00
$vtpversion_cmd = $config [ 'snmpget' ] . " -M " . $config [ 'mibdir' ] . " -m CISCO-VTP-MIB -Oqv - " . $device [ 'snmpver' ] . " -c " . $device [ 'community' ] . " " ;
2009-04-24 15:04:45 +00:00
$vtpversion_cmd .= $device [ 'hostname' ] . " : " . $device [ 'port' ] . " .1.3.6.1.4.1.9.9.46.1.1.1.0 " ;
2007-04-12 00:07:25 +00:00
$vtpversion = trim ( `$vtpversion_cmd 2>/dev/null` );
2007-04-10 23:43:42 +00:00
2009-03-24 11:28:28 +00:00
if ( $vtpversion == '1' || $vtpversion == '2' || $vtpversion == 'two' || $vtpversion == 'three' ) {
2007-04-10 23:43:42 +00:00
2010-07-02 19:58:13 +00:00
$vtp_domain_cmd = $config [ 'snmpget' ] . " -M " . $config [ 'mibdir' ] . " -m CISCO-VTP-MIB -Oqv - " . $device [ 'snmpver' ] . " -c " . $device [ 'community' ] . " " . $device [ 'hostname' ] . " : " . $device [ 'port' ];
2009-04-24 15:04:45 +00:00
$vtp_domain_cmd .= " .1.3.6.1.4.1.9.9.46.1.2.1.1.2.1 " ;
2007-04-15 14:38:26 +00:00
$vtp_domain = trim ( str_replace ( " \" " , " " , `$vtp_domain_cmd 2>/dev/null` ));
2008-03-22 23:09:35 +00:00
echo ( " VTP v $vtpversion $vtp_domain " );
2007-04-10 23:43:42 +00:00
2010-07-02 19:58:13 +00:00
$vlans_cmd = $config [ 'snmpwalk' ] . " -M " . $config [ 'mibdir' ] . " -m CISCO-VTP-MIB -O qn - " . $device [ 'snmpver' ] . " -c " . $device [ 'community' ] . " " . $device [ 'hostname' ] . " : " . $device [ 'port' ] . " " ;
2007-04-12 00:07:25 +00:00
$vlans_cmd .= " 1.3.6.1.4.1.9.9.46.1.3.1.1.2.1 | sed s/.1.3.6.1.4.1.9.9.46.1.3.1.1.2.1.//g | cut -f 1 -d \" \" " ;
2007-04-10 23:43:42 +00:00
2007-04-12 00:07:25 +00:00
$vlans = trim ( `$vlans_cmd | grep -v o` );
2007-04-10 23:43:42 +00:00
2007-04-12 00:07:25 +00:00
foreach ( explode ( " \n " , $vlans ) as $vlan ) {
2010-07-02 19:58:13 +00:00
$vlan_descr_cmd = $config [ 'snmpget' ] . " -M " . $config [ 'mibdir' ] . " -m CISCO-VTP-MIB -O nvq - " . $device [ 'snmpver' ] . " -c " . $device [ 'community' ] . " " . $device [ 'hostname' ] . " : " . $device [ 'port' ] . " " ;
2007-04-12 00:07:25 +00:00
$vlan_descr_cmd .= " .1.3.6.1.4.1.9.9.46.1.3.1.1.4.1. " . $vlan ;
2009-04-24 15:04:45 +00:00
$vlan_descr = shell_exec ( $vlan_descr_cmd );
2007-04-12 00:07:25 +00:00
$vlan_descr = trim ( str_replace ( " \" " , " " , $vlan_descr ));
2007-04-15 14:38:26 +00:00
if ( mysql_result ( mysql_query ( " SELECT COUNT(vlan_id) FROM `vlans` WHERE `device_id` = ' " . $device [ 'device_id' ] . " ' AND `vlan_domain` = ' " . $vtp_domain . " ' AND `vlan_vlan` = ' " . $vlan . " ' " ), 0 ) == '0' ) {
2010-02-21 11:58:07 +00:00
mysql_query ( " INSERT INTO `vlans` (`device_id`,`vlan_domain`,`vlan_vlan`, `vlan_descr`) VALUES ( " . $device [ 'device_id' ] . " ,' " . mres ( $vtp_domain ) . " ',' $vlan ', ' " . mres ( $vlan_descr ) . " ') " );
2008-03-22 23:09:35 +00:00
echo ( " + " );
2010-01-04 00:25:49 +00:00
} else {
echo ( " . " );
2010-02-21 11:58:07 +00:00
mysql_query ( " UPDATE `vlans` SET `vlan_descr`=' " . mres ( $vlan_descr ) . " ' WHERE `device_id`=' " . $device [ 'device_id' ] . " ' AND `vlan_vlan`=' " . $vlan . " ' AND `vlan_domain`=' " . $vtp_domain . " ' " );
2010-01-04 00:25:49 +00:00
}
2007-04-12 00:07:25 +00:00
2007-11-23 11:37:28 +00:00
$this_vlans [] = $vlan ;
2007-04-12 00:07:25 +00:00
}
2007-04-10 23:43:42 +00:00
2007-11-23 11:37:28 +00:00
$device_vlans = mysql_query ( " SELECT * FROM `vlans` WHERE `device_id` = ' " . $device [ 'device_id' ] . " ' AND `vlan_domain` = ' " . $vtp_domain . " ' " );
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 ; }
}
2008-03-22 23:09:35 +00:00
if ( ! $vlan_exists ) {
mysql_query ( " DELETE FROM `vlans` WHERE `vlan_id` = ' " . $dev_vlan [ 'vlan_id' ] . " ' " );
echo ( " - " );
#echo("Deleted VLAN ". $dev_vlan['vlan_vlan'] ."\n");
}
2007-11-23 11:37:28 +00:00
}
2007-04-10 23:43:42 +00:00
}
2008-03-22 23:09:35 +00:00
unset ( $this_vlans );
echo ( " \n " );
2010-02-28 22:04:15 +00:00
}
2010-12-26 21:57:21 +00:00
?>