PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 12.3.2
Jetpack – WP Security, Backup, Speed, & Growth v12.3.2
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 All 500 releases
jetpack / jetpack_vendor / automattic / jetpack-status / src / class-visitor.php
class-visitor.php
45 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Status and information regarding the site visitor.
4 *
5 * @package automattic/jetpack-status
6 */
7
8 namespace Automattic\Jetpack\Status;
9
10 /**
11 * Visitor class.
12 */
13 class Visitor {
14
15 /**
16 * Gets current user IP address.
17 *
18 * @param bool $check_all_headers Check all headers? Default is `false`.
19 *
20 * @return string Current user IP address.
21 */
22 public function get_ip( $check_all_headers = false ) {
23 if ( $check_all_headers ) {
24 foreach ( array(
25 'HTTP_CF_CONNECTING_IP',
26 'HTTP_CLIENT_IP',
27 'HTTP_X_FORWARDED_FOR',
28 'HTTP_X_FORWARDED',
29 'HTTP_X_CLUSTER_CLIENT_IP',
30 'HTTP_FORWARDED_FOR',
31 'HTTP_FORWARDED',
32 'HTTP_VIA',
33 ) as $key ) {
34 if ( ! empty( $_SERVER[ $key ] ) ) {
35 // @todo Some of these might actually be lists of IPs (e.g. HTTP_X_FORWARDED_FOR) or something else entirely (HTTP_VIA).
36 return filter_var( wp_unslash( $_SERVER[ $key ] ) );
37 }
38 }
39 }
40
41 return ! empty( $_SERVER['REMOTE_ADDR'] ) ? filter_var( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ) : '';
42 }
43
44 }
45