summaryrefslogtreecommitdiff
path: root/includes/utils/IP.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/utils/IP.php')
-rw-r--r--includes/utils/IP.php23
1 files changed, 20 insertions, 3 deletions
diff --git a/includes/utils/IP.php b/includes/utils/IP.php
index 0e2db8cc..4441236d 100644
--- a/includes/utils/IP.php
+++ b/includes/utils/IP.php
@@ -629,6 +629,25 @@ class IP {
}
/**
+ * Determines if an IP address is a list of CIDR a.b.c.d/n ranges.
+ *
+ * @since 1.25
+ *
+ * @param string $ip the IP to check
+ * @param array $ranges the IP ranges, each element a range
+ *
+ * @return bool true if the specified adress belongs to the specified range; otherwise, false.
+ */
+ public static function isInRanges( $ip, $ranges ) {
+ foreach ( $ranges as $range ) {
+ if ( self::isInRange( $ip, $range ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
* Convert some unusual representations of IPv4 addresses to their
* canonical dotted quad representation.
*
@@ -698,7 +717,7 @@ class IP {
*/
public static function isTrustedProxy( $ip ) {
$trusted = self::isConfiguredProxy( $ip );
- wfRunHooks( 'IsTrustedProxy', array( &$ip, &$trusted ) );
+ Hooks::run( 'IsTrustedProxy', array( &$ip, &$trusted ) );
return $trusted;
}
@@ -712,7 +731,6 @@ class IP {
public static function isConfiguredProxy( $ip ) {
global $wgSquidServers, $wgSquidServersNoPurge;
- wfProfileIn( __METHOD__ );
// Quick check of known singular proxy servers
$trusted = in_array( $ip, $wgSquidServers );
@@ -723,7 +741,6 @@ class IP {
}
$trusted = self::$proxyIpSet->match( $ip );
}
- wfProfileOut( __METHOD__ );
return $trusted;
}