note 19937 added to language.variables.predefined
| From: | destes at ix dot netcom dot com dot nospam | Date: | Fri, 15 Mar 2002 18:40:48 +0000 |
| Subject: | note 19937 added to language.variables.predefined | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-27838@lists.php.net to get a copy of this message | ||
Further complicating the debate about getting someone's IP, I should note that getenv()
doesn't exist in ISAPI mode. However, the $_SERVER array exists even in ISAPI mode if PHP is
4.1.0 or over. So, in order to accomodate ISAPI mode, you can get IPs like this:
function getip() {
if ($_SERVER) {
if ( $_SERVER[HTTP_X_FORWARDED_FOR] ) {
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif ( $_SERVER["HTTP_CLIENT_IP"] ) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$realip = getenv( 'HTTP_CLIENT_IP' );
} else {
$realip = getenv( 'REMOTE_ADDR' );
}
}
return $realip;
}
If you're running ISAPI mode below PHP 4.1.0, you'd have to modify this to use the array
$HTTP_SERVER_VARS, but those cases will be few indeed.
--
http://www.php.net/manual/en/language.variables.predefined.php
http://master.php.net/manage/user-notes.php?action=edit+19937
http://master.php.net/manage/user-notes.php?action=delete+19937
http://master.php.net/manage/user-notes.php?action=reject+19937