32) { stderr($lang_ipsearch['std_error'], $lang_ipsearch['std_invalid_subnet_mask']); } else $mask = long2ip(pow(2,32) - pow(2,32-$n)); } elseif (!preg_match($regex, $mask)) { stderr($lang_ipsearch['std_error'], $lang_ipsearch['std_invalid_subnet_mask']); } $where1 = "INET_ATON(u.ip) & INET_ATON('$mask') = INET_ATON('$ip') & INET_ATON('$mask')"; $where2 = "INET_ATON(iplog.ip) & INET_ATON('$mask') = INET_ATON('$ip') & INET_ATON('$mask')"; $addr = "Mask: $mask"; } stdhead($lang_ipsearch['head_search_ip_history']); begin_main_frame(); print("
".$lang_ipsearch['text_no_users_found']."
\n"); end_main_frame(); stdfoot(); die; } $order = $_GET['order'] ?? ''; $page = intval($_GET["page"] ?? 0); $perpage = 20; list($pagertop, $pagerbottom, $limit) = pager($perpage, $count, "{$_SERVER['PHP_SELF']}?ip=$ip&mask=$mask&order=$order&"); if ($order == "added") $orderby = "added DESC"; elseif ($order == "username") $orderby = "UPPER(username) ASC"; elseif ($order == "email") $orderby = "email ASC"; elseif ($order == "last_ip") $orderby = "last_ip ASC"; elseif ($order == "last_access") $orderby = "last_ip ASC"; else $orderby = "access DESC"; $query = "SELECT * FROM ( SELECT u.id, u.username, u.ip AS ip, u.ip AS last_ip, u.last_access, u.last_access AS access, u.email, u.invited_by, u.added, u.class, u.uploaded, u.downloaded, u.donor, u.enabled, u.warned FROM users AS u WHERE $where1 UNION SELECT u.id, u.username, iplog.ip AS ip, u.ip as last_ip, u.last_access, max(iplog.access) AS access, u.email, u.invited_by, u.added, u.class, u.uploaded, u.downloaded, u.donor, u.enabled, u.warned FROM users AS u RIGHT JOIN iplog ON u.id = iplog.userid WHERE $where2 GROUP BY u.id ) as ipsearch GROUP BY id ORDER BY $orderby $limit"; $res = sql_query($query) or sqlerr(__FILE__, __LINE__); print("| ".$lang_ipsearch['col_username']." | ". "".$lang_ipsearch['col_last_ip']." | ". "".$lang_ipsearch['col_last_access']." | ". "".$lang_ipsearch['col_ip_num']." | ". "".$lang_ipsearch['col_last_access_on']." | ". "".$lang_ipsearch['col_added']." | ". "".$lang_ipsearch['col_invited_by']." | "); while ($user = mysql_fetch_array($res)) { if ($user['added'] == '0000-00-00 00:00:00' || $user['added'] == null) $added = $lang_ipsearch['text_not_available']; else $added = gettime($user['added']); if ($user['last_access'] == '0000-00-00 00:00:00' || $user['added'] == null) $lastaccess = $lang_ipsearch['text_not_available']; else $lastaccess = gettime($user['last_access']); if ($user['last_ip']) $ipstr = $user['last_ip']; else $ipstr = $lang_ipsearch['text_not_available']; $resip = sql_query("SELECT ip FROM iplog WHERE userid=" . sqlesc($user['id']) . " GROUP BY iplog.ip") or sqlerr(__FILE__, __LINE__); $iphistory = mysql_num_rows($resip); if ($user["invited_by"] > 0) { $invited_by = get_username($user['invited_by']); } else $invited_by = $lang_ipsearch['text_not_available']; echo "
| " . get_username($user['id'])." | ". "" . $ipstr . " | " . $lastaccess . " | " . $iphistory. " | " . gettime($user['access']) . " | " . gettime($user['added']) . " | " . $invited_by . " |