Clean up ipv4 discovery by changing to Net_IPv4 instead of ipcalc

git-svn-id: http://www.observium.org/svn/observer/trunk@1808 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Tom Laermans
2011-03-08 18:01:54 +00:00
parent 2fd11cf9d0
commit 694b31fcad
2 changed files with 6 additions and 6 deletions

View File

@ -9,11 +9,9 @@ foreach(explode("\n", $oids) as $data)
$data = trim($data); $data = trim($data);
list($oid,$ifIndex) = explode(" ", $data); list($oid,$ifIndex) = explode(" ", $data);
$mask = trim(snmp_get($device,"ipAdEntNetMask.$oid","-Oqv","IP-MIB")); $mask = trim(snmp_get($device,"ipAdEntNetMask.$oid","-Oqv","IP-MIB"));
#FIXME internalize? $addr = Net_IPv4::parseAddress("$oid/$mask");
$network = trim(shell_exec ($config['ipcalc'] . " $oid/$mask | grep Network | cut -d\" \" -f 4")); $network = $addr->network . "/" . $addr->bitmask;
list($net,$cidr) = explode("/", $network); $cidr = $addr->bitmask;
$cidr = trim($cidr);
if ($mask == "255.255.255.255") { $cidr = "32"; $network = "$oid/$cidr"; }
if (mysql_result(mysql_query("SELECT count(*) FROM `ports` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'"), 0) != '0' && $oid != "0.0.0.0") if (mysql_result(mysql_query("SELECT count(*) FROM `ports` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'"), 0) != '0' && $oid != "0.0.0.0")
{ {
$i_query = "SELECT interface_id FROM `ports` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'"; $i_query = "SELECT interface_id FROM `ports` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'";
@ -38,11 +36,11 @@ foreach(explode("\n", $oids) as $data)
$full_address = "$oid/$cidr|$ifIndex"; $full_address = "$oid/$cidr|$ifIndex";
$valid_v4[$full_address] = 1; $valid_v4[$full_address] = 1;
} else { echo("!"); } } else { echo("!"); }
} }
$sql = "SELECT * FROM ipv4_addresses AS A, ports AS I WHERE I.device_id = '".$device['device_id']."' AND A.interface_id = I.interface_id"; $sql = "SELECT * FROM ipv4_addresses AS A, ports AS I WHERE I.device_id = '".$device['device_id']."' AND A.interface_id = I.interface_id";
$data = mysql_query($sql); $data = mysql_query($sql);
while($row = mysql_fetch_array($data)) while($row = mysql_fetch_array($data))
{ {
$full_address = $row['ipv4_address'] . "/" . $row['ipv4_prefixlen'] . "|" . $row['ifIndex']; $full_address = $row['ipv4_address'] . "/" . $row['ipv4_prefixlen'] . "|" . $row['ifIndex'];

View File

@ -78,4 +78,6 @@ while($row = mysql_fetch_array($data))
unset($valid_v6); unset($valid_v6);
echo "\n";
?> ?>