|
|
|
|
|
|
|
|
|
'')
AND (U.ip_int BETWEEN S.ip_int_start AND S.ip_int_stop) $cidr_filter AND S.office=1 AND U.deleted=0 ORDER BY net,mac,arp_found";
$users = get_records_sql($db_link,$sSQL, $params);
$f_subnet=NULL;
$f_mac=NULL;
$f_id=NULL;
$printed = NULL;
$f_index = 0;
$f_count = 0;
foreach ($users as $row) {
//инициализируем перебор по первой записи
if (empty($f_subnet)) {
//сохраняем для обработки
$f_subnet = $row['net'];
$f_mac=$row['mac'];
$f_id=$row['id'];
$f_index=0;
continue;
}
//начинаем перебор - проверяем
if ($row['net'] === $f_subnet and $row['mac']===$f_mac) {
//если первая запись не выводилась - выводим на печать
if (!isset($printed[$f_id])) {
//считаем сколько у нас дублей
$dSQL = "SELECT U.id, U.ip, U.mac, U.arp_found FROM user_auth U WHERE $cidr_filter AND U.deleted=0 AND U.mac=?";
$params[]= $f_mac;
$doubles = get_records_sql($db_link,$dSQL, $params);
$f_count = count($doubles);
$f_index++;
$user = get_record_sql($db_link,"SELECT * FROM user_auth WHERE id=?", [$f_id]);
if (empty($user['arp_found']) || is_empty_datetime($user['arp_found'])) { $user['arp_found'] = ''; }
if (empty($user['ts']) || is_empty_datetime($user['ts'])) { $user['ts'] = ''; }
if (empty($user['changed_time']) || is_empty_datetime($user['changed_time'])) { $user['changed_time'] = ''; }
print "\n";
$cl = "data";
print " | \n";
print "" . get_login($db_link,$user['user_id']) . " | \n";
print "" . $user['ip'] . " | \n";
print "" . expand_mac($db_link,$user['mac']) . " | \n";
if (isset($user['dhcp_hostname']) and strlen($user['dhcp_hostname']) > 0) {
print "".$user['description']." [" . $user['dhcp_hostname'] . "] | \n";
} else {
print "".$user['description']." | \n";
}
print "".$user['dns_name']." | \n";
print "".$user['ts']." | \n";
print "".$user['last_found']." | \n";
print "
\n";
$printed[$f_id] = 1;
}
//проверяем текущую запись
if (!isset($printed[$row['id']])) {
$f_index++;
$user = get_record_sql($db_link,"SELECT * FROM user_auth WHERE id=?", [$row['id']]);
if (empty($user['arp_found']) || is_empty_datetime($user['arp_found'])) { $user['arp_found'] = ''; }
if (empty($user['ts']) || is_empty_datetime($user['ts'])) { $user['ts'] = ''; }
if (empty($user['changed_time']) || is_empty_datetime($user['changed_time'])) { $user['changed_time'] = ''; }
print "\n";
$cl = "data";
print " | \n";
print "" . get_login($db_link,$user['user_id']) . " | \n";
print "" . $user['ip'] . " | \n";
print "" . expand_mac($db_link,$user['mac']) . " | \n";
if (isset($user['dhcp_hostname']) and strlen($user['dhcp_hostname']) > 0) {
print "".$user['description']." [" . $user['dhcp_hostname'] . "] | \n";
} else {
print "".$user['description']." | \n";
}
print "".$user['dns_name']." | \n";
print "".$user['ts']." | \n";
print "".$user['last_found']." | \n";
print "
\n";
$printed[$row['id']] = 1;
}
} else {
$f_subnet = $row['net'];
$f_mac = $row['mac'];
$f_id = $row['id'];
$f_index = 0;
}
}
print "
\n";
?>