MediaWiki  master
ProxyLookup.php
Go to the documentation of this file.
1 <?php
2 
22 use Wikimedia\IPSet;
23 
27 class ProxyLookup {
28 
32  private $proxyServers;
33 
38 
42  private $proxyIPSet;
43 
49  $this->proxyServers = $proxyServers;
50  $this->proxyServersComplex = $proxyServersComplex;
51  }
52 
59  public function isConfiguredProxy( $ip ) {
60  // Quick check of known singular proxy servers
61  if ( in_array( $ip, $this->proxyServers, true ) ) {
62  return true;
63  }
64 
65  // Check against addresses and CIDR nets in the complex list
66  if ( !$this->proxyIPSet ) {
67  $this->proxyIPSet = new IPSet( $this->proxyServersComplex );
68  }
69  return $this->proxyIPSet->match( $ip );
70  }
71 
80  public function isTrustedProxy( $ip ) {
81  $trusted = $this->isConfiguredProxy( $ip );
82  Hooks::run( 'IsTrustedProxy', [ &$ip, &$trusted ] );
83  return $trusted;
84  }
85 }
isConfiguredProxy( $ip)
Checks if an IP matches a proxy we&#39;ve configured.
Definition: ProxyLookup.php:59
IPSet null $proxyIPSet
Definition: ProxyLookup.php:42
__construct( $proxyServers, $proxyServersComplex)
Definition: ProxyLookup.php:48
isTrustedProxy( $ip)
Checks if an IP is a trusted proxy provider.
Definition: ProxyLookup.php:80
string [] $proxyServers
Definition: ProxyLookup.php:32
string [] $proxyServersComplex
Definition: ProxyLookup.php:37
static run( $event, array $args=[], $deprecatedVersion=null)
Call hook functions defined in Hooks::register and $wgHooks.
Definition: Hooks.php:200