prefix . 'hardware_visitors'; // 分页参数 $per_page = 20; $current_page = isset($_GET['paged']) ? max(1, intval($_GET['paged'])) : 1; $offset = ($current_page - 1) * $per_page; // 搜索逻辑 $search = isset($_GET['s']) ? sanitize_text_field($_GET['s']) : ''; $where_clause = '1=1'; $query_params = []; if (!empty($search)) { $like = '%' . $wpdb->esc_like($search) . '%'; $where_clause .= $wpdb->prepare(" AND (ip LIKE %s OR os_name LIKE %s OR browser_name LIKE %s)", $like, $like, $like); } // 获取数据 $total_items = $wpdb->get_var("SELECT COUNT(*) FROM $table WHERE $where_clause"); $results = $wpdb->get_results($wpdb->prepare( "SELECT * FROM $table WHERE $where_clause ORDER BY created_at DESC LIMIT %d OFFSET %d", $per_page, $offset )); // 界面输出 echo '
时间 | 操作系统 | 浏览器 | IP地址 | 地理位置 | 硬件配置 | 用户代理 |
---|---|---|---|---|---|---|
🕒 服务器: ' . esc_html($server_time) . '
👤 用户: ' . esc_html($user_time) . '
🌍 IP地区: ' . esc_html($ip_time) . '
' . $timezone_warning . '
| ';
echo '' . esc_html("{$row->os_name} {$row->os_version}") . ' | '; echo '' . esc_html("{$row->browser_name} {$row->browser_version}") . ' | '; echo '' . esc_html($row->ip) . ' | '; echo '
🏳️ ' . esc_html($row->country) . '
📍 ' . esc_html("{$row->region} · {$row->city}") . '
⏰ ' . esc_html($geo_timezone) . '
| ';
echo '
💻 ' . esc_html("{$row->cpu_arch} · {$row->cpu_cores}核") . '
| ';
echo '
| ';
echo '
😢 暂无追踪数据 |