From c6664c10c47626aa58e0729265314778e3db07a4 Mon Sep 17 00:00:00 2001 From: Tom Laermans Date: Wed, 9 Mar 2011 12:13:19 +0000 Subject: [PATCH] discovery/services: use snmp_walk(), + clean up/reindent, with help from Corentin Chary git-svn-id: http://www.observium.org/svn/observer/trunk@1812 61d68cd4-352d-0410-923a-c4978735b2b8 --- includes/discovery/services.inc.php | 43 +++++++++++++++++------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/includes/discovery/services.inc.php b/includes/discovery/services.inc.php index 4ec72030c..623e55de4 100644 --- a/includes/discovery/services.inc.php +++ b/includes/discovery/services.inc.php @@ -4,27 +4,34 @@ if ($config['discover_services']) { echo("Services: "); - $known_services = array(22 => "ssh", 25 => "smtp", 53 => "dns", 80 => "http", 110 => "pop", 143 => "imap"); + # FIXME: use /etc/services? + $known_services = array(22 => "ssh", 25 => "smtp", 53 => "dns", 80 => "http", + 110 => "pop", 143 => "imap"); - ## Services - if($device['type'] == "server") { - $oids = shell_exec($config['snmpwalk'] . " -".$device['snmpver']." -CI -Osqn -c ".$community." ".$hostname.":".$port." .1.3.6.1.2.1.6.13.1.1.0.0.0.0"); - $oids = trim($oids); - foreach(explode("\n", $oids) as $data) { - $data = trim($data); - if($data) { - list($oid, $tcpstatus) = explode(" ", $data); - if (trim($tcpstatus)=="listen") { - $split_oid = explode('.',$oid); - $tcp_port = $split_oid[count($split_oid)-6]; - if($known_services[$tcp_port]) { add_service($known_services[$tcp_port]); }; + # Services + if($device['type'] == "server") + { + $oids = trim(snmp_walk($device, ".1.3.6.1.2.1.6.13.1.1.0.0.0.0", "-Osqn")); + foreach(explode("\n", $oids) as $data) + { + $data = trim($data); + if($data) + { + list($oid, $tcpstatus) = explode(" ", $data); + if (trim($tcpstatus) == "listen") + { + $split_oid = explode('.',$oid); + $tcp_port = $split_oid[count($split_oid)-6]; + if($known_services[$tcp_port]) + { + add_service($known_services[$tcp_port]); + } + } } - } - } - } ## End Services - -echo("\n"); + } + } # End Services + echo("\n"); } ?>