В модуле за ip-mac отвечает этот кусок кода
//IP
$isMacField = 0;
$fieldIpPoolMac = 'NULL';
$data = Database::query("SHOW COLUMNS FROM ip_pool WHERE Field = 'mac'", true, 'Field');
if (isset($data['mac'])) {
$isMacField = 1;
$fieldIpPoolMac = "REPLACE(REPLACE(REPLACE(REPLACE(LOWER(i.mac), ':', ''), '-', ''), '.', ''), '\t', '')";
}
$data = Database::query("SHOW TABLES LIKE 'mac_uid'", true);
if (0 < count($data)) {
$query = "
SELECT
i.id AS `id`,
i.uid AS `user_id`,
i.ip AS `ip`,
REPLACE(REPLACE(REPLACE(REPLACE(LOWER(m.mac), ':', ''), '-', ''), '.', ''), '\t', '') AS `mac`,
al.properties AS `mac2`,
" . $fieldIpPoolMac . " as ip_pool_mac
FROM
ip_pool AS i
LEFT JOIN
mac_uid AS m
ON
m.uid = i.uid
AND
m.ip = i.ip
LEFT JOIN
auth_log AS al
ON
al.uid = i.uid
AND
al.ip = i.ip
GROUP BY
i.ip";
} else {
$query = "
SELECT
i.id AS `id`,
i.uid AS `user_id`,
i.ip AS `ip`,
REPLACE(REPLACE(REPLACE(REPLACE(LOWER(m.mac), ':', ''), '-', ''), '.', ''), '\t', '') AS `mac`,
al.properties AS `mac2`,
" . $fieldIpPoolMac . " as ip_pool_mac
FROM
ip_pool AS i
LEFT JOIN
ip_mac AS m
ON
m.ip = i.ip
LEFT JOIN
auth_log AS al
ON
al.uid = i.uid
AND
al.ip = i.ip
GROUP BY
i.ip";
}
$data = Database::query($query, true, 'id');
Log::rawLog('customer_ip', $data);
foreach ($data as $i => $value) {
$customerId = $value['user_id'];
$ip = $value['ip'];
if ('' == $value['mac']) {
$mac = $value['mac2'];
} else {
$mac = $value['mac'];
}
if ('' != $value['ip_pool_mac']) {
$mac = $value['ip_pool_mac'];
}
//mod=pppoe;user=e48d8c6a5f28;nas=127.0.0.1
$tempMac = explode(';', $mac);
if (isset($tempMac[1])) {
$mac = $tempMac[1];
$mac = str_replace('user=', '', $mac);
}
$customersData[$customerId]['ip_mac'][$ip] = array(
'ip' => $ip,
'mac' => $mac
);
}
Если нет IP, то mac не подтягивает. Можно попробовать по аналогии с другой таблицы подтягивать mac . Напишите разработчикам, может помогут.