+
+ # Range/user-agent blocking
+
+ $fBlock = false; # Mmmm, Hungarian
+ if ( ( !is_array( $wgBadUserAgents ) ||
+ array_key_exists( getenv( "HTTP_USER_AGENT" ), $wgBadUserAgents ) ) &&
+ is_array( $wgBadRanges ) )
+ {
+ $iIp = ip2long( getenv( "REMOTE_ADDR" ) );
+ foreach ( $wgBadRanges as $range ) {
+ $start = ip2long( $range[0] );
+ $end = ip2long( $range[1] );
+ if ( $iIp >= $start && $iIp <= $end ) {
+ $fBlock = true;
+ break;
+ }
+ }
+ }
+
+ if ( $fBlock ) {
+ $this->mBlockedby = $wgRangeBlockUser;
+ $this->mBlockReason = $wgRangeBlockReason;
+ return;
+ }
+
+ # User/IP blocking