ipv4/ipv6 udp/tcp transport support patch

git-svn-id: http://www.observium.org/svn/observer/trunk@1860 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Adam Amstrong
2011-03-15 16:12:44 +00:00
parent 0a86e1c675
commit ba2e142c09
8 changed files with 85 additions and 50 deletions

View File

@@ -20,8 +20,15 @@ if (isset($argv[1]) && $argv[1])
$port = 161;
}
$transport = $argv[5];
if (!$snmpver) $snmpver = "v2c";
if ($community) { unset($config['snmp']['community']); $config['snmp']['community'][] = $community; }
if ($community) {
unset($config['snmp']['community']);
$config['snmp']['community'][] = $community;
}
$device = deviceArray($host, $community, $snmpver, $port, $transport);
list($hostshort) = explode(".", $host);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `devices` WHERE `hostname` = '".mres($host)."'"), 0) == '0' )
@@ -32,18 +39,18 @@ if (isset($argv[1]) && $argv[1])
{
# FIXME should be a foreach $config['snmp']['community'][0] as $community
$community = $config['snmp']['community'][0];
if (isSNMPable($argv[1], $community, $snmpver, $port))
{
$snmphost = trim(str_replace("\"", "", shell_exec($config['snmpget'] ." -m SNMPv2-MIB -Oqv -$snmpver -c ".$config['snmp']['community'][0]." $host:$port sysName.0")));
if ($snmphost == "" || ($snmphost && ($snmphost == $host || $hostshort = $host)))
{
$return = createHost ($host, $community, $snmpver, $port);
if ($return) { echo($return . "\n"); } else { echo("Adding $host failed\n"); }
} else { echo("Given hostname does not match SNMP-read hostname ($snmphost)!\n"); }
} else { echo("Could not reach $host with SNMP\n"); }
if ( isSNMPable($device))
{
$snmphost = snmp_get($device, "sysName.0", "-Oqv", "SNMPv2-MIB");
if ($snmphost == "" || ($snmphost && ($snmphost == $host || $hostshort = $host)))
{
$return = createHost ($host, $community, $snmpver, $port, $transport);
if($return) { echo($return . "\n"); } else { echo("Adding $host failed\n"); }
} else { echo("Given hostname does not match SNMP-read hostname ($snmphost)!\n"); }
} else { echo("Could not reach $host with SNMP\n"); }
} else { echo("Could not ping $host\n"); }
} else { echo("Could not resolve $host\n"); }
} else { echo("Already got host $host\n"); }
} else { echo("Add Host Tool\nUsage: ./addhost.php <hostname> [community] [v1|v2c] [port]\n"); }
} else { echo("Add Host Tool\nUsage: ./addhost.php <hostname> [community] [v1|v2c] [port] [udp|udp6|tcp|tcp6]\n"); }
?>
?>