$entry) { $nodes[$entry['nodeUuid']] = $node; } print_vars($nodes); //$flags = OBS_SNMP_ALL; $oid_data = []; foreach (['logicalInterfaceNumericId', 'logicalInterfaceCurrNode', 'logicalInterfaceCurrPort', 'logicalInterfaceAddress', 'logicalInterfaceNetmaskLength', 'logicalInterfaceRole'] as $oid) { $oid_data = snmpwalk_cache_oid($device, $oid, $oid_data, $mib); if ($oid === 'logicalInterfaceNumericId' && !snmp_status()) { break; // Stop walk, not exist table } } foreach ($oid_data as $index => $entry) { if (isset($nodes[$entry['logicalInterfaceCurrNode']])) { $ifDescr = $nodes[$entry['logicalInterfaceCurrNode']] . ':' . $entry['logicalInterfaceCurrPort']; if ($port_id = get_port_id_by_ifDescr($device, $ifDescr)) { $port = get_port_by_id_cache($port_id); $ifIndex = $port['ifIndex']; } else { print_debug("Port $ifDescr not found."); $ifIndex = $entry['logicalInterfaceNumericId']; //continue; } } $data = [ 'ifIndex' => $ifIndex, 'ip' => $entry['logicalInterfaceAddress'], //'mask' => $entry['logicalInterfaceNetmask'], 'prefix' => $entry['logicalInterfaceNetmaskLength'], 'origin' => $entry['logicalInterfaceRole'], ]; discover_add_ip_address($device, $mib, $data); } // EOF