WZHU's BLOG
HEAD
- 有一种精神,叫"公诚勤朴"
Recent Posts
- 导出Gmail通讯录(Export Gmail Contacts)
- Subversion 强制用户写备注(日志)才能提交.
- Linux 时间服务器同步命令
- PHP修改 LDAP用户密码程序
- Subversion安装与配置
- 我的Subversion使用LDAP认证之Apache配置实例
- HTTP协议(RFC2616)中的方法定义
- 我的HTTP Client 模拟PHP Class
- 我所使用的PHP图形验证码程序.
- DNS Bind9 配置实例
- (联合早报)中国社会信任的解体及其结果(转)
- Linux+Apache+MySQL+PHP 安装配置(三)——freeType,libpng,jpeg,gd,mcrypt,mhash,imap,PHP安装
- Linux+Apache+MySQL+PHP 安装配置(二)—— Apache安装
- Linux+Apache+MySQL+PHP 安装配置(一)—— MySQL安装
- 甲型H1N1流感防病要诀!
Recent Comments
挣点外快
PHP获取通过使用代理服务器的用户真实IP地址
作者: wzhu 时间: 2008-09-22 13:12:40
在PHP 中用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址
要想透过代理服务器取得客户端的真实 IP 地址,就要使用$_SERVER["HTTP_X_FORWARDED_FOR"] 来读取.
但并不是用$_SERVER["HTTP_X_FORWARDED_FOR"]都能来读取到透过代理服务器的客户真实 IP,有些用此方法读取到的仍然是代理服务器的 IP.
代码如下:
<?php
function getRemoteIP(){
if( !empty( $_SERVER["HTTP_X_FORWARDED_FOR"] ) ){
$REMOTE_ADDR = $_SERVER["HTTP_X_FORWARDED_FOR"];
$tmp_ip = explode( ",", $REMOTE_ADDR );
$REMOTE_ADDR = $tmp_ip[0];
}
return empty( $REMOTE_ADDR ) ? ( $_SERVER["REMOTE_ADDR"] ) : ( $REMOTE_ADDR ) ;
}
function getRemoteIP(){
if( !empty( $_SERVER["HTTP_X_FORWARDED_FOR"] ) ){
$REMOTE_ADDR = $_SERVER["HTTP_X_FORWARDED_FOR"];
$tmp_ip = explode( ",", $REMOTE_ADDR );
$REMOTE_ADDR = $tmp_ip[0];
}
return empty( $REMOTE_ADDR ) ? ( $_SERVER["REMOTE_ADDR"] ) : ( $REMOTE_ADDR ) ;
}
相关评论