$oids1) { foreach ($oids1 as $ip_version => $oids2) { $mac_found[$ip_version][$vrf_name] = 1; foreach ($oids2 as $ip => $entry) { $mac_array = explode(':', $entry['cInetNetToMediaPhysAddress']); switch (safe_count($mac_array)) { case 4: // Convert IPv4 to fake MAC for 6to4 tunnels //cInetNetToMediaPhysAddress[27][ipv6]["20:02:c0:58:63:01:00:00:00:00:00:00:00:00:00:00"] 0:0:c0:58 $mac_array[] = 'ff'; $mac_array[] = 'fe'; $mac = implode(':', $mac_array); break; case 8: array_pop($mac_array); array_pop($mac_array); $mac = implode(':', $mac_array); break; case 6: default: $mac = $entry['cInetNetToMediaPhysAddress']; } if (!is_valid_param($mac, 'mac')) { print_debug("Invalid MAC address '$mac'"); print_debug_vars($entry); continue; } $ip = ip_uncompress(hex2ip($ip)); $mac_table[$vrf_name][$ip_version][$ifIndex][$ip] = mac_zeropad($mac); } } } } // EOF