/************************************************************************ ||------------|| User IP history page ||---------------------------|| This page lists previous IPs a user has connected to the site with. It gets called if $_GET['action'] == 'ips'. It also requires $_GET['userid'] in order to get the data for the correct user. ************************************************************************/ define('IPS_PER_PAGE', 25); $UserID = $_GET['userid']; if (!is_number($UserID)) { error(404); } $DB->query(" SELECT um.Username, p.Level AS Class FROM users_main AS um LEFT JOIN permissions AS p ON p.ID=um.PermissionID WHERE um.ID = ".$UserID); list($Username, $Class) = $DB->next_record(); if (!check_perms('users_view_ips', $Class)) { error(403); } $UsersOnly = $_GET['usersonly']; if (isset($_POST['ip'])) { $SearchIP = db_string($_POST['ip']); $SearchIPQuery = " AND h1.IP = '$SearchIP' "; } View::show_header("IP history for $Username"); ?> list($Page,$Limit) = Format::page_limit(IPS_PER_PAGE); if ($UsersOnly == 1) { $RS = $DB->query(" SELECT SQL_CALC_FOUND_ROWS h1.IP, h1.StartTime, h1.EndTime, GROUP_CONCAT(h2.UserID SEPARATOR '|'), GROUP_CONCAT(h2.StartTime SEPARATOR '|'), GROUP_CONCAT(IFNULL(h2.EndTime,0) SEPARATOR '|'), GROUP_CONCAT(um2.Username SEPARATOR '|'), GROUP_CONCAT(um2.Enabled SEPARATOR '|'), GROUP_CONCAT(ui2.Donor SEPARATOR '|'), GROUP_CONCAT(ui2.Warned SEPARATOR '|') FROM users_history_ips AS h1 LEFT JOIN users_history_ips AS h2 ON h2.IP=h1.IP AND h2.UserID!=$UserID LEFT JOIN users_main AS um2 ON um2.ID=h2.UserID LEFT JOIN users_info AS ui2 ON ui2.UserID=h2.UserID WHERE h1.UserID='$UserID' AND h2.UserID>0 $SearchIPQuery GROUP BY h1.IP, h1.StartTime ORDER BY h1.StartTime DESC LIMIT $Limit"); } else { $RS = $DB->query(" SELECT SQL_CALC_FOUND_ROWS h1.IP, h1.StartTime, h1.EndTime, GROUP_CONCAT(h2.UserID SEPARATOR '|'), GROUP_CONCAT(h2.StartTime SEPARATOR '|'), GROUP_CONCAT(IFNULL(h2.EndTime,0) SEPARATOR '|'), GROUP_CONCAT(um2.Username SEPARATOR '|'), GROUP_CONCAT(um2.Enabled SEPARATOR '|'), GROUP_CONCAT(ui2.Donor SEPARATOR '|'), GROUP_CONCAT(ui2.Warned SEPARATOR '|') FROM users_history_ips AS h1 LEFT JOIN users_history_ips AS h2 ON h2.IP=h1.IP AND h2.UserID!=$UserID LEFT JOIN users_main AS um2 ON um2.ID=h2.UserID LEFT JOIN users_info AS ui2 ON ui2.UserID=h2.UserID WHERE h1.UserID='$UserID' $SearchIPQuery GROUP BY h1.IP, h1.StartTime ORDER BY h1.StartTime DESC LIMIT $Limit"); } $DB->query("SELECT FOUND_ROWS()"); list($NumResults) = $DB->next_record(); $DB->set_query_id($RS); $Pages = Format::get_pages($Page, $NumResults, IPS_PER_PAGE, 9); ?>
IP address search |
IP address | Started | Ended | Elapsed |
=$IP?> (=Tools::get_country_code_by_ajax($IP)?>)
if ($CanManageIPBans) {
if (!isset($IPs[$IP])) {
$sql = "SELECT ID, FromIP, ToIP FROM ip_bans WHERE '".Tools::ip_to_unsigned($IP)."' BETWEEN FromIP AND ToIP LIMIT 1";
$DB->query($sql);
if ($DB->record_count() > 0) {
$IPs[$IP] = true;
?>
[Banned]
}
else {
$IPs[$IP] = false; ?>
Ban
}
$counter++;
}
}
?>
=Tools::get_host_by_ajax($IP)?> =($HasDupe ? '('.count($UserIDs).')' : '(0)')?> |
=time_diff($StartTime)?> | =time_diff($EndTime)?> | //time_diff(strtotime($StartTime), strtotime($EndTime)); ?> |