HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wptoho/wp-content/plugins/defender-security/src/helper/analytics/class-firewall.php
<?php
/**
 * Responsible for gathering analytics data for the firewall feature.
 *
 * @package WP_Defender\Helper\Analytics
 */

namespace WP_Defender\Helper\Analytics;

use WP_Defender\Event;

/**
 * Gather analytics data required for firewall feature.
 */
class Firewall extends Event {

	public const EVENT_IP_DETECTION = 'def_ip_detection';
	public const PROP_IP_DETECTION  = 'Detection Method';

	/**
	 * Provides data for the frontend.
	 *
	 * @return array An array of data for the frontend.
	 */
	public function data_frontend(): array {
		return array();
	}

	/**
	 * Converts the current state of the object to an array.
	 *
	 * @return array Returns an associative array of object properties.
	 */
	public function to_array(): array {
		return array();
	}

	/**
	 * Imports data into the model.
	 *
	 * @param array $data Data to be imported into the model.
	 */
	public function import_data( array $data ) {
	}

	/**
	 * Removes settings for all submodules.
	 */
	public function remove_settings() {
	}

	/**
	 * Delete all the data & the cache.
	 */
	public function remove_data() {
	}

	/**
	 * Exports strings.
	 */
	public function export_strings() {
	}
	// End.

	/**
	 * Get a label of the detection method.
	 *
	 * @param string $ip_detection_type IP detection type.
	 * @param string $http_ip_header    HTTP IP header.
	 *
	 * @return string
	 */
	public static function get_detection_method_label( string $ip_detection_type, string $http_ip_header ): string {
		if ( 'automatic' === $ip_detection_type ) {
			$detection_method = 'Automatic';
		} else {
			// Manual options.
			$detection_method = 'Manual - ';
			switch ( $http_ip_header ) {
				case 'HTTP_X_FORWARDED_FOR':
					$detection_method .= 'X-Forward-For';
					break;
				case 'HTTP_X_REAL_IP':
					$detection_method .= 'X-Real-IP';
					break;
				case 'HTTP_CF_CONNECTING_IP':
					$detection_method .= 'CF-Connecting-IP';
					break;
				case 'REMOTE_ADDR':
				default:
					$detection_method .= 'Remote-Addr';
					break;
			}
		}

		return $detection_method;
	}
}