У меня было подобное , возможно дело в форmате вывoда полученных маков. Часть выводится в формате Hex-STRING: - все ок , а часть в STRING: мак адрес что то в виде "рg│:GЭ" .
Если с командной строки вот так :
snmpwalk -v 2c -c password -Oqx ваш_OID
именно c ключом х выводит нормально - то нужно что то вроде как :
preg_match('/\"(.+)\"/U', $неправильный_вывод_mac, $mac_bin);
затем
$maconu =bin2hex($mac_bin[1]);
затем преобразовать в формат хх:хх:хх:хх:хх:хх
$maconu = preg_replace('/(.{2})/', '\1:', $maconu, 5);
ну и конечно, применять это только для ответов типа STRING -