php中获取ip地址
2016-01-09 01:15
453 查看
function GetIP(){
if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif(!empty($_SERVER["REMOTE_ADDR"])){
$cip = $_SERVER["REMOTE_ADDR"];
}
else{
$cip = "无法获取!";
}
return $cip;
}
echo GetIP();
-----------------------------------------------------------------
在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP地址,但如果客户端是使用代理服务器来访问,那取到的就
是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用
$_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。
不过要注意的事,并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实IP,有些用此
方法读取到的仍然是代理服务器的 IP。
还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用$_SERVER["HTTP_X_FORWARDED_FOR"]取到的值将
是空的。
HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。
REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。
if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif(!empty($_SERVER["REMOTE_ADDR"])){
$cip = $_SERVER["REMOTE_ADDR"];
}
else{
$cip = "无法获取!";
}
return $cip;
}
echo GetIP();
-----------------------------------------------------------------
function getIP() { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; } else { $realip = $_SERVER['REMOTE_ADDR']; } return $realip; }
在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP地址,但如果客户端是使用代理服务器来访问,那取到的就
是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用
$_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。
不过要注意的事,并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实IP,有些用此
方法读取到的仍然是代理服务器的 IP。
还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用$_SERVER["HTTP_X_FORWARDED_FOR"]取到的值将
是空的。
HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。
REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。
相关文章推荐
- thinkphp 配置rewrite失败问题 【3.2.3】
- vs2013中$(TargetPath)与Link.OutputFile不同,导致调试debug找不到exe
- PHP简单下载
- PHP中的数组处理函数实例总结
- yii2中添加验证码的实现方法
- YII2.0之Activeform表单组件用法实例
- yii2中使用Active Record模式的方法
- yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
- Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
- thinkphp中字符截取函数msubstr()用法分析
- ThinkPHP中html:list标签用法分析
- thinkPHP中多维数组的遍历方法
- thinkPHP查询方式小结
- PHP基于单例模式实现的mysql类
- PHP统计目录中文件以及目录中目录大小的方法
- PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
- php 实现 二维码 扫描登录
- PHP之Smarty模板的基本使用
- json数组和php数组转换
- 【php】empty()详解