| Server IP : 89.108.64.180 / Your IP : 216.73.217.95 Web Server : Apache/2.4.41 (Ubuntu) System : Linux 89-108-64-180.cloudvps.regruhosting.ru 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : www-root ( 1010) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/aravanatula.ru/wp-content/plugins/redirection/matches/ |
Upload File : |
<?php
/**
* Check the request IP
*/
class IP_Match extends Red_Match {
use FromNotFrom_Match;
/**
* Array of IP addresses
*
* @var string[]
*/
public $ip = [];
public function name() {
return __( 'URL and IP', 'redirection' );
}
public function save( array $details, $no_target_url = false ) {
$data = array( 'ip' => isset( $details['ip'] ) && is_array( $details['ip'] ) ? $this->sanitize_ips( $details['ip'] ) : [] );
return $this->save_data( $details, $no_target_url, $data );
}
/**
* Sanitize a single IP
*
* @param String $ip IP.
* @return String|false
*/
private function sanitize_single_ip( $ip ) {
$ip = @inet_pton( trim( sanitize_text_field( $ip ) ) );
if ( $ip !== false ) {
return @inet_ntop( $ip ); // Convert back to string
}
return false;
}
/**
* Sanitize a list of IPs
*
* @param string[] $ips List of IPs.
* @return string[]
*/
private function sanitize_ips( array $ips ) {
$ips = array_map( array( $this, 'sanitize_single_ip' ), $ips );
return array_values( array_filter( array_unique( $ips ) ) );
}
/**
* Get a list of IPs that match.
*
* @param String $match_ip IP to match.
* @return string[]
*/
private function get_matching_ips( $match_ip ) {
$current_ip = @inet_pton( $match_ip );
return array_filter( $this->ip, function( $ip ) use ( $current_ip ) {
return @inet_pton( $ip ) === $current_ip;
} );
}
public function is_match( $url ) {
$matched = $this->get_matching_ips( Redirection_Request::get_ip() );
return count( $matched ) > 0;
}
public function get_data() {
return array_merge( array(
'ip' => $this->ip,
), $this->get_from_data() );
}
public function load( $values ) {
$values = $this->load_data( $values );
$this->ip = isset( $values['ip'] ) ? $values['ip'] : [];
}
}