php获得用户ip地址的比较不错的方法

2015-01-24信息快讯网

这篇文章主要介绍了php获得用户ip地址的方法,需要的朋友可以参考下

REMOTE_ADDR只能获取访问者本地连接中设置的IP,如某大学校园网中自己设置的10.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址,如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP。如果将这个函数应用到限IP访问的网页中,别人即使通过限IP访问段中的代理服务器,也不能访问该页面。

下面提供一个函数:

 
<?php 

// 定义一个函数getIP() 
function getIP() 
{ 
global $ip; 

if (getenv("HTTP_CLIENT_IP")) 
$ip = getenv("HTTP_CLIENT_IP"); 
else if(getenv("HTTP_X_FORWARDED_FOR")) 
$ip = getenv("HTTP_X_FORWARDED_FOR"); 
else if(getenv("REMOTE_ADDR")) 
$ip = getenv("REMOTE_ADDR"); 
else 
$ip = "Unknow"; 

return $ip; 
} 

// 使用方法: 
echo getIP(); 

?> 

getenv("REMOTE_ADDR")用来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 来读取。

但是如果客户端没有通过代理服务器来访问,那么用getenv("HTTP_X_FORWARDED_FOR") 取到的值将是空的。
 
else if(getenv("HTTP_X_FORWARDED_FOR")) 
$ip = getenv("HTTP_X_FORWARDED_FOR"); 

表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不为空(即客户端使用代理服务器的情况下),则变量$ip等于getenv("HTTP_X_FORWARDED_FOR") 取到的真实IP值。

如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值为空(即没有使用代理服务器),则不会执行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");这一行语句。

这种情况下已经确认客户端没有使用代理服务器,从而通过
 
else if(getenv("REMOTE_ADDR")) 
$ip = getenv("REMOTE_ADDR"); 

这两行语句获得客户端的IP地址也是真实的IP地址。

PHP ignore_user_abort函数详细介绍和使用实例
Linux下手动编译安装PHP扩展的例子分享
可以保证单词完整性的PHP英文字符串截取代码分享
PHP魔术引号所带来的安全问题分析
PHP5.2至5.6的新增功能详解
PHP 只允许指定IP访问(允许*号通配符过滤IP)
PHP获取客户端真实IP地址的5种情况分析和实现代码
PHP关于htmlspecialchars、strip_tags、addslashes的解释
PHP和javascript常用正则表达式及用法实例
php使用GeoIP库实例
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
PHP使用CURL获取302跳转后的地址实例
php获取网卡的MAC地址支持WIN/LINUX系统
免费的ip数据库淘宝IP地址库简介和PHP调用实例
php中\r \r\n \t的区别示例介绍
php全角字符转换为半角函数
二进制交叉权限微型php类分享
php stripslashes和addslashes的区别
php获取网页标题和内容函数(不包含html标签)
PHP下获取上个月、下个月、本月的日期(strtotime,date)
采用header定义为文件然后readfile下载(隐藏下载地址)
php读取纯真ip数据库使用示例
php实现图形显示Ip地址的代码及注释
php利用新浪接口查询ip获取地理位置示例
php利用腾讯ip分享计划获取地理位置示例分享
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
js和php邮箱地址验证的实现方法
淘宝ip地址查询类分享(利用淘宝ip库)
PHP根据IP地址获取所在城市具体实现
PHP JS Ip地址及域名格式检测代码
PHP中将ip地址转成十进制数的两种实用方法
©2014-2024 dbsqp.com