[drupal-devel] [feature] Replace $_SERVER["REMOTE_ADDR"] with a
function which understands X-Forwarded-For
degerrit
drupal-devel at drupal.org
Sat May 21 21:44:52 UTC 2005
Issue status update for http://drupal.org/node/20471
Project: Drupal
-Version: 4.5.2
+Version: 4.6.0
Component: base system
Category: feature requests
Priority: normal
-Assigned to: Anonymous
+Assigned to: degerrit
Reported by: degerrit
Updated by: degerrit
-Status: active
+Status: patch
Attachment: http://drupal.org/files/issues/remote_addr.diff (6.07 KB)
Here's my proposal for showing user IP addresses behind proxy servers,
especially in log files. It adds a function remote_addr() and replaces
all the uses of $_SERVER["REMOTE_ADDR"] with that function.
This is my first patch for Drupal, don't be too harsh one me :-)
A few notes:
- I patched session.inc because $_SERVER["REMOTE_ADDR"] is also called
in session.inc and common.inc is not available at that time it seems
- maybe I replaced too vigorously in common.inc and sessions.inc, it
works for me though
- maybe it should be renamed http_remote_addr or apache_remote_addr
degerrit
Previous comments:
------------------------------------------------------------------------
April 14, 2005 - 00:42 : degerrit
In several modules, replace $_SERVER["REMOTE_ADDR"] with a function
which understands X-Forwarded-For.
Proxy servers often (sometimes, always?) insert "X-Forwarded-For"
headers which contains the "real" client IP address. I think it is
useful to log the client IP address in that situation.
This little snippet works for me, and I'd suggest something similar be
made into a function?
$headers = apache_request_headers();
if (array_key_exists('X-Forwarded-For', $headers)){
$hostname=$headers['X-Forwarded-For'] . ' via ' .
$_SERVER["REMOTE_ADDR"];
} else {
$hostname=$_SERVER["REMOTE_ADDR"];
}
I can make a patch proposal if people like the idea.
More information about the drupal-devel
mailing list