Wikia code/includes/ProxyTools.php
From MediaWiki.org
< Wikia code | includes
--- D:\Programming\SVN\mediawiki\branches\REL1_16\phase3\includes\ProxyTools.php 2011-07-18 22:31:27.967773500 +0100 +++ D:\Programming\SVN\wikia\trunk\includes\ProxyTools.php 2011-08-17 15:28:46.330078100 +0100 @@ -11,6 +11,14 @@ * @return string */ function wfGetForwardedFor() { + // Wikia - start - @author: wladek + // FB#4215 User:Wikia edits being attributed to user's IP and useragent (again) + global $wgIP; + if ( $wgIP === '127.0.0.1' ) { // Used by User:Wikia + return null; + } + // Wikia - end + if( function_exists( 'apache_request_headers' ) ) { // More reliable than $_SERVER due to case and -/_ folding $set = array (); @@ -111,6 +119,16 @@ } } + if( preg_match( "/^10\.(?!10\.)(?!4\.)/", $ip ) && $ip != "10.8.2.159" && + preg_match( "/Mozilla/", $_SERVER['HTTP_USER_AGENT'] ) ) { + if( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { + $xff = "XFF=$_SERVER[HTTP_X_FORWARDED_FOR]"; + } else { + $xff = "no XFF"; + } + Wikia::log( __METHOD__, false, "Private IP $ip from $_SERVER[REMOTE_ADDR] with $xff ($_SERVER[HTTP_USER_AGENT])", true, true ); + } + if( !$ip ) { throw new MWException( "Unable to determine IP" ); }