diff --git a/discovery.php b/discovery.php index 711cc2fb17..6c4fb51a7e 100755 --- a/discovery.php +++ b/discovery.php @@ -31,7 +31,7 @@ if($argv[1] == "--device" && $argv[2]) { $devices_polled = 0; -$device_query = mysql_query("SELECT * FROM `devices` WHERE status = '1' $where"); +$device_query = mysql_query("SELECT * FROM `devices` WHERE status = '1' $where ORDER BY device_id DESC"); while ($device = mysql_fetch_array($device_query)) { echo($device['hostname'] ."\n"); diff --git a/html/includes/print-interface.inc b/html/includes/print-interface.inc index 673866886e..ab23318700 100644 --- a/html/includes/print-interface.inc +++ b/html/includes/print-interface.inc @@ -15,8 +15,6 @@ $ifPhysAddress = $interface['ifPhysAddress']; $ifType = fixiftype($interface['ifType']); $ifHardType = $interface['ifHardType']; -# $errors = interface_errors($interface); -# $rates = interface_rates($interface); if($ifAlias) {$ifAlias = $ifAlias . "
";} if($bg == "#ffffff") { $bg = "#e5e5e5"; } else { $bg="#ffffff"; } @@ -32,12 +30,15 @@ " . generateiflink($interface, "$i. $ifDescr") . " $error_img
$ifAlias"); + + if($ifAlias) { echo("
"); } + unset ($break); if(!$dographs) { $ipdata = mysql_query("SELECT * FROM `ipaddr` WHERE `interface_id` = '" . $interface['interface_id'] . "'"); while($ip = mysql_fetch_Array($ipdata)) { echo("$break $ip[addr]/$ip[cidr]"); - $break = " "; + $break = "
"; } echo(""); echo(""); @@ -79,7 +80,7 @@ echo(""); if ( strpos($ifDescr, "oopback") === false && !$dographs) { $link_query = mysql_query("select * from links AS L, interfaces AS I, devices AS D WHERE L.src_if = '$if_id' AND L.dst_if = I.interface_id AND I.device_id = D.device_id"); while($link = mysql_fetch_array($link_query)) { - echo("Directly Connected " . generateiflink($link) . " on " . generatedevicelink($link) . "
"); + echo("Directly Connected " . generateiflink($link, makeshortif($link['ifDescr'])) . " on " . generatedevicelink($link) . "
"); $br = "
"; } unset($br); @@ -106,7 +107,7 @@ echo(""); $wq = mysql_query("select count(*) FROM links WHERE dst_if = '$this_ifid' AND src_if = $if_id;"); if (@mysql_result($wq, 0) == '0' && $this_hostname != $hostname) { $graph_url = "graph.php?if=$this_ifid&from=$twoday&to=$now&width=400&height=120&type=bits'"; - echo("$br  Same Subnet" . generateiflink($new) . " on " . generatedevicelink($new)); + echo("$br  Same Subnet" . generateiflink($new, makeshortif($new['ifDescr'])) . " on " . generatedevicelink($new)); $br = "
"; } } diff --git a/includes/common.php b/includes/common.php new file mode 100644 index 0000000000..dd49a1611a --- /dev/null +++ b/includes/common.php @@ -0,0 +1,22 @@ +MySQL Error"; + die; +} +mysql_select_db($config['db_name']); + +# Set some times needed by loads of scripts (it's dynamic, so we do it here!) + +$now = time(); +$day = time() - (24 * 60 * 60); +$twoday = time() - (2 * 24 * 60 * 60); +$week = time() - (7 * 24 * 60 * 60); +$month = time() - (31 * 24 * 60 * 60); +$year = time() - (365 * 24 * 60 * 60); + + +?> diff --git a/includes/functions.php b/includes/functions.php index fe8bb8ae9e..ec3087ebf4 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -16,10 +16,24 @@ include("cisco-entities.php"); include("syslog.php"); +function write_dev_attrib($device_id, $attrib_type, $attrib_value) { + + $count_sql = "SELECT COUNT(*) FROM devices_attribs WHERE `device_id` = '" . $device_id . "' AND `attrib_type` = '$attrib_type'"; + if(mysql_result(mysql_query($count_sql),0)) { + $update_sql = "UPDATE devices_attribs SET attrib_value = '$attrib_value' WHERE `device_id` = '$device_id' AND `attrib_type` = '$attrib_type'"; + mysql_query($update_sql); + } else { + $insert_sql = "INSERT INTO devices_attribs (`device_id`, `attrib_type`, `attrib_value`) VALUES ('$device_id', '$attrib_type', '$attrib_value')"; + mysql_query($insert_sql); + } + return mysql_affected_rows(); + +} + + function shorthost($hostname, $len=16) { list ($first, $second, $third, $fourth, $fifth) = explode(".", $hostname); - $shorthost = $first; if(strlen($first.".".$second) < $len && $second) { $shorthost = $first.".".$second; @@ -47,8 +61,8 @@ function getHostOS($hostname, $community, $snmpver) { global $config; - $sysDescr_cmd = "snmpget -O qv -" . $snmpver . " -c " . $community . " " . $hostname . " sysDescr.0"; - $sysDescr = str_replace("\"", "", trim(`$sysDescr_cmd`)); + $sysDescr_cmd = $config['snmpget']." -O qv -" . $snmpver . " -c " . $community . " " . $hostname . " sysDescr.0"; + $sysDescr = str_replace("\"", "", trim(shell_exec($sysDescr_cmd))); $dir_handle = @opendir("includes/osdiscovery") or die("Unable to open $path"); while ($file = readdir($dir_handle)) { if( preg_match("/^discover-([a-z0-9]*).php/", $file) ) { @@ -56,14 +70,12 @@ function getHostOS($hostname, $community, $snmpver) { } } closedir($dir_handle); - if($os) { return $os; } else { return FALSE; } - } -function strgen ($length = 8) +function strgen ($length = 16) { $entropy = array(0,1,2,3,4,5,6,7,8,9,'a','A','b','B','c','C','d','D','e', 'E','f','F','g','G','h','H','i','I','j','J','k','K','l','L','m','M','n', @@ -72,8 +84,7 @@ function strgen ($length = 8) $string = ""; - for ($i=0; $i<$length; $i++) - { + for ($i=0; $i<$length; $i++) { $key = mt_rand(0,61); $string .= $entropy[$key]; } diff --git a/includes/unix-graphing.php b/includes/unix-graphing.php index 2ee5e1036e..8fe3561543 100755 --- a/includes/unix-graphing.php +++ b/includes/unix-graphing.php @@ -262,7 +262,7 @@ function cpugraphUnix ($rrd, $graph, $from, $to, $width, $height, $title, $verti $options .= " GPRINT:nice_perc:AVERAGE:\ \ \ %5.2lf%%"; $options .= " GPRINT:nice_perc:MAX:\ \ \ %5.2lf%%\\\\n"; $options .= " AREA:system_perc#ea8f00:system:STACK"; - $options .= " GPRINT:system_perc:LAST:\ \ %5.2lf%%"; + $options .= " GPRINT:system_perc:LAST:\ \ \ %5.2lf%%"; $options .= " GPRINT:system_perc:AVERAGE:\ \ \ %5.2lf%%"; $options .= " GPRINT:system_perc:MAX:\ \ \ %5.2lf%%\\\\n"; $options .= " AREA:idle_perc#f5f5e5:idle:STACK"; diff --git a/mibs/.index b/mibs/.index deleted file mode 100644 index f557fb804c..0000000000 --- a/mibs/.index +++ /dev/null @@ -1,49 +0,0 @@ -NETSCREEN-CHASSIS-MIB NS-CHASSIS.mib -NETSCREEN-QOS-MIB NS-QOS.mib -NETSCREEN-INTERFACE-MIB NS-INTERFACE.mib -NETSCREEN-VR-BGP4-MIB NS-VR-BGP4.mib -NETSCREEN-RIPv2-MIB NS-RIP.mib -NETSCREEN-VR-MIB NS-VR.mib -NETSCREEN-SET-GEN-MIB NS-SET-GEN.mib -NETSCREEN-SET-DHCP-MIB NS-SET-DHCP.mib -NETSCREEN-NAT-MIB NS-NAT.mib -NETSCREEN-VPN-MON-MIB NS-VPN-MON.mib -NETSCREEN-SET-SYSTIME-MIB NS-SET-SYSTIME.mib -NETSCREEN-VPN-GATEWAY-MIB NS-VPN-GW.mib -NETSCREEN-TRAP-MIB NS-TRAPS.mib -NETSCREEN-VPN-USER-MIB NS-VPN-USR.mib -NETSCREEN-SET-SNMP-MIB NS-SET-SNMP.mib -NETSCREEN-VPN-PHASETWO-MIB NS-VPN-PH2.mib -NETSCREEN-VSYS-MIB NS-VSYS.mib -NETSCREEN-VPN-MON-SA-COUNT-MIB NS-VPN-MON-SA.mib -NETSCREEN-VPN-L2TP-MIB NS-VPN-L2TP.mib -NETSCREEN-SET-GLB-MIB NS-SET-GLB.mib -NETSCREEN-SET-URL-FILTER-MIB NS-SET-URL-FILTER.mib -NETSCREEN-VR-OSPF-MIB NS-VR-OSPF.mib -NETSCREEN-SET-DNS-MIB NS-SET-DNS.mib -NETSCREEN-IDS-MIB NS-IDS.mib -NETSCREEN-SET-ADMIN-USR-MIB NS-SET-ADMIN-USR.mib -NETSCREEN-SET-LOG-MIB NS-SET-LOG.mib -NETSCREEN-POLICY-MIB NS-POLICY.mib -NETSCREEN-SMI NS-SMI.mib -NETSCREEN-IPPOOL-MIB NS-VPN-IPPOOL.mib -NETSCREEN-NSRP-MIB NS-NSRP.mib -NETSCREEN-VR-RIPv2-MIB NS-VR-RIP.mib -NETSCREEN-IP-ARP-MIB NS-IP-ARP.mib -NETSCREEN-VPN-PHASEONE-MIB NS-VPN-PH1.mib -NETSCREEN-SCHEDULE-MIB NS-SCHEDULE.mib -NETSCREEN-PRODUCTS-MIB NS-PRODUCTS.mib -NETSCREEN-SET-EMAIL-MIB NS-SET-EMAIL.mib -NETSCREEN-OSPF-TRAP-MIB NS-OSPF-TRAP.mib -NETSCREEN-SERVICE-MIB NS-SERVICE.mib -NETSCREEN-ADDR-MIB NS-ADDR.mib -NETSCREEN-OSPF-MIB NS-OSPF.mib -NETSCREEN-ZONE-MIB NS-ZONE.mib -NETSCREEN-RESOURCE-MIB NS-RES.mib -NETSCREEN-VPN-IAS-MIB NS-VPN-IAS.mib -NETSCREEN-VPN-MANUAL-MIB NS-VPN-MANUAL.mib -NETSCREEN-VPN-IKE-MIB NS-VPN-IKE.mib -NETSCREEN-BGP4-MIB NS-BGP4.mib -NETSCREEN-SET-WEB-MIB NS-SET-WEB.mib -NETSCREEN-SET-AUTH-MIB NS-SET-AUTH.mib -NETSCREEN-CERTIFICATE-MIB NS-VPN-CERT.mib diff --git a/poll-device.php b/poll-device.php index e08252b852..2110fdf6ae 100755 --- a/poll-device.php +++ b/poll-device.php @@ -29,7 +29,7 @@ while ($device = mysql_fetch_array($device_query)) { echo("Polling " . $device['hostname'] . " ( device_id ".$device['device_id']." )\n\n"); unset($update); unset($update_query); unset($seperator); unset($version); unset($uptime); unset($features); - unset($location); unset($hardware); unset($sysDescr); unset($sysContact); + unset($sysLocation); unset($hardware); unset($sysDescr); unset($sysContact); $pingable = isPingable($device['hostname']); @@ -46,6 +46,8 @@ while ($device = mysql_fetch_array($device_query)) { if($snmpable) { echo("SNMP : yes :)\n"); } else { echo("SNMP : no :(\n"); } } + unset($snmpdata); + if ($snmpable) { $status = '1'; @@ -177,7 +179,7 @@ while ($device = mysql_fetch_array($device_query)) { default: pollDevice(); } - $location = str_replace("\"","", $sysLocation); + $sysLocation = str_replace("\"","", $sysLocation); echo("Polling temperatures\n"); include("includes/polling/temperatures.inc.php"); @@ -208,10 +210,10 @@ while ($device = mysql_fetch_array($device_query)) { mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('" . $device['device_id'] . "', NULL, NOW(), 'sysDescr -> $sysDescr')"); } - if ( $location && $device['location'] != $location ) { - $update .= $seperator . "`location` = '$location'"; + if ( $sysLocation && $device['location'] != $sysLocation ) { + $update .= $seperator . "`location` = '$sysLocation'"; $seperator = ", "; - mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('" . $device['device_id'] . "', NULL, NOW(), 'Location -> $location')"); + mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('" . $device['device_id'] . "', NULL, NOW(), 'Location -> $sysLocation')"); } if ( $version && $device['version'] != $version ) {