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_search_ip_history']."

\n"); print("
"); print("\n"); tr($lang_ipsearch['row_ip']."*", "", 1); tr("".$lang_ipsearch['row_subnet_mask']."", "", 1); print(""); print("
\n"); if ($ip) { $queryc = "SELECT COUNT(*) FROM ( SELECT u.id FROM users AS u WHERE $where1 UNION SELECT u.id FROM users AS u RIGHT JOIN iplog ON u.id = iplog.userid WHERE $where2 GROUP BY u.id ) AS ipsearch"; $res = sql_query($queryc) or sqlerr(__FILE__, __LINE__); $row = mysql_fetch_array($res); $count = $row[0]; if ($count == 0) { 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("

".$count.$lang_ipsearch['text_users_used_the_ip'].$ip."

"); print("\n"); print("". "". "". "". "". "". ""); 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 "". "\n"; } echo "
".$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']."
" . get_username($user['id'])."" . $ipstr . " " . $lastaccess . " " . $iphistory. " " . gettime($user['access']) . " " . gettime($user['added']) . " " . $invited_by . "
"; echo $pagerbottom; } end_main_frame(); stdfoot(); } ?>