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::runner()->onIsTrustedProxy( $ip, $trusted );
83  return $trusted;
84  }
85 }
ProxyLookup\$proxyIPSet
IPSet null $proxyIPSet
Definition: ProxyLookup.php:42
ProxyLookup\isConfiguredProxy
isConfiguredProxy( $ip)
Checks if an IP matches a proxy we've configured.
Definition: ProxyLookup.php:59
ProxyLookup
Definition: ProxyLookup.php:27
ProxyLookup\isTrustedProxy
isTrustedProxy( $ip)
Checks if an IP is a trusted proxy provider.
Definition: ProxyLookup.php:80
ProxyLookup\__construct
__construct( $proxyServers, $proxyServersComplex)
Definition: ProxyLookup.php:48
Hooks\runner
static runner()
Get a HookRunner instance for calling hooks using the new interfaces.
Definition: Hooks.php:171
ProxyLookup\$proxyServers
string[] $proxyServers
Definition: ProxyLookup.php:32
ProxyLookup\$proxyServersComplex
string[] $proxyServersComplex
Definition: ProxyLookup.php:37