PluginProbe ʕ •ᴥ•ʔ
WP 2FA – Two-factor authentication for WordPress / 4.0.0
WP 2FA – Two-factor authentication for WordPress v4.0.0
4.0.0 1.7.1 2.0.0 2.0.1 2.1.0 2.2.0 2.2.1 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.8.0 2.9.0 2.9.1 2.9.2 2.9.3 3.0.0 3.0.1 3.1.0 3.1.1 3.1.1.2 trunk 1.2.0 1.3.0 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.6.0 1.6.1 1.6.2 1.7.0
wp-2fa / includes / classes / Utils / class-request-utils.php
wp-2fa / includes / classes / Utils Last commit date
class-abstract-migration.php 18 hours ago class-date-time-utils.php 18 hours ago class-debugging.php 18 hours ago class-generate-modal.php 18 hours ago class-migration.php 18 hours ago class-request-utils.php 18 hours ago class-settings-utils.php 18 hours ago class-upgrade-guard.php 18 hours ago class-user-utils.php 18 hours ago class-validator.php 18 hours ago class-white-label.php 18 hours ago index.php 18 hours ago
class-request-utils.php
75 lines
1 <?php
2 /**
3 * Responsible for the requests.
4 *
5 * @package wp2fa
6 * @subpackage utils
7 * @copyright 2026 Melapress
8 * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
9 * @link https://wordpress.org/plugins/wp-2fa/
10 * @since 2.0.0
11 */
12
13 declare(strict_types=1);
14
15 namespace WP2FA\Utils;
16
17 defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
18
19 if ( ! class_exists( '\WP2FA\Utils\Request_Utils' ) ) {
20
21 /**
22 * Utility class to extract info from current request.
23 *
24 * @package WP2FA\Utils
25 * @since 2.0.0
26 */
27 class Request_Utils {
28
29 /**
30 * Extracts the IP address for the currently browsing user
31 *
32 * @return string
33 *
34 * @since 2.0.0
35 */
36 public static function get_ip(): string {
37 $ip_address = '';
38
39 foreach (
40 array(
41 'HTTP_CLIENT_IP',
42 'HTTP_X_FORWARDED_FOR',
43 'HTTP_X_FORWARDED',
44 'HTTP_X_CLUSTER_CLIENT_IP',
45 'HTTP_FORWARDED_FOR',
46 'HTTP_FORWARDED',
47 'REMOTE_ADDR',
48 ) as $key
49 ) {
50 if ( array_key_exists( $key, $_SERVER ) ) {
51 foreach ( array_map( 'trim', explode( ',', \wp_unslash( $_SERVER[ $key ] ) ) ) as $ip ) {
52 if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ) !== false ) {
53 $ip_address = $ip;
54 break 2;
55 }
56 }
57 }
58 }
59
60 return $ip_address;
61 }
62
63 /**
64 * Extracts the User agent for the current request.
65 *
66 * @return string
67 *
68 * @since 2.0.0
69 */
70 public static function get_user_agent(): string {
71 return array_key_exists( 'HTTP_USER_AGENT', $_SERVER ) ? trim( (string) \sanitize_text_field( \wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) ) : '';
72 }
73 }
74 }
75