diff --git a/includes/discovery/ipv4-addresses.inc.php b/includes/discovery/ipv4-addresses.inc.php index 6ccf7feaa3..59db748ac3 100755 --- a/includes/discovery/ipv4-addresses.inc.php +++ b/includes/discovery/ipv4-addresses.inc.php @@ -9,11 +9,9 @@ foreach(explode("\n", $oids) as $data) $data = trim($data); list($oid,$ifIndex) = explode(" ", $data); $mask = trim(snmp_get($device,"ipAdEntNetMask.$oid","-Oqv","IP-MIB")); - #FIXME internalize? - $network = trim(shell_exec ($config['ipcalc'] . " $oid/$mask | grep Network | cut -d\" \" -f 4")); - list($net,$cidr) = explode("/", $network); - $cidr = trim($cidr); - if ($mask == "255.255.255.255") { $cidr = "32"; $network = "$oid/$cidr"; } + $addr = Net_IPv4::parseAddress("$oid/$mask"); + $network = $addr->network . "/" . $addr->bitmask; + $cidr = $addr->bitmask; 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'"; @@ -38,11 +36,11 @@ foreach(explode("\n", $oids) as $data) $full_address = "$oid/$cidr|$ifIndex"; $valid_v4[$full_address] = 1; } 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"; $data = mysql_query($sql); + while($row = mysql_fetch_array($data)) { $full_address = $row['ipv4_address'] . "/" . $row['ipv4_prefixlen'] . "|" . $row['ifIndex']; diff --git a/includes/discovery/ipv6-addresses.inc.php b/includes/discovery/ipv6-addresses.inc.php index e28608f510..c16e7be119 100644 --- a/includes/discovery/ipv6-addresses.inc.php +++ b/includes/discovery/ipv6-addresses.inc.php @@ -78,4 +78,6 @@ while($row = mysql_fetch_array($data)) unset($valid_v6); +echo "\n"; + ?> \ No newline at end of file