php获取用户IPv4或IPv6地址的代码


Posted in PHP onNovember 15, 2012

其实这个很简单,只不过我一直想用 ipv6-test 的API做一个获取用户IP地址的东西……无奈JSON获取到的只是本机服务器的IP。算了,不研究了,何况人家提供的widget也挺好用的。谷歌了一下,找到这段代码,可以根据用户环境获取IP地址。

例如IPv6访问 www.shiwo.de 则获取到的是用户的IPv6地址

p.s 前提是网站做了A和AAAA解析

<?php 
function getIP() /*获取客户端IP*/ 
{ 
if (@$_SERVER["HTTP_X_FORWARDED_FOR"]) 
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
else if (@$_SERVER["HTTP_CLIENT_IP"]) 
$ip = $_SERVER["HTTP_CLIENT_IP"]; 
else if (@$_SERVER["REMOTE_ADDR"]) 
$ip = $_SERVER["REMOTE_ADDR"]; 
else if (@getenv("HTTP_X_FORWARDED_FOR")) 
$ip = getenv("HTTP_X_FORWARDED_FOR"); 
else if (@getenv("HTTP_CLIENT_IP")) 
$ip = getenv("HTTP_CLIENT_IP"); 
else if (@getenv("REMOTE_ADDR")) 
$ip = getenv("REMOTE_ADDR"); 
else 
$ip = "Unknown"; 
return $ip; 
} 
?>
PHP 相关文章推荐
一个简单的自动发送邮件系统(二)
Oct 09 PHP
在线增减.htpasswd内的用户
Oct 09 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
Aug 08 PHP
codeigniter自带数据库类使用方法说明
Mar 25 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
PHP类的反射用法实例
Nov 03 PHP
PHP将HTML转换成文本的实现代码
Jan 21 PHP
thinkphp中字符截取函数msubstr()用法分析
Jan 09 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
Oct 12 PHP
JS操作XML中DTD介绍及使用方法分析
Jul 04 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 #PHP
PHP中文分词 自动获取关键词介绍
Nov 13 #PHP
PHP gbk环境下json_dencode传送来的汉字
Nov 13 #PHP
PHP漏洞全解(详细介绍)
Nov 13 #PHP
thinkphp3.0 模板中函数的使用
Nov 13 #PHP
thinkPHP的Html模板标签使用方法
Nov 13 #PHP
PHP数组及条件,循环语句学习
Nov 11 #PHP
You might like
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
PHP fclose函数用法总结
2019/02/15 PHP
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
2015/08/11 Javascript
js实现浏览本地文件并显示扩展名的方法
2015/08/17 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
Python中用于计算对数的log()方法
2015/05/15 Python
Python解决N阶台阶走法问题的方法分析
2017/12/28 Python
Python实现的购物车功能示例
2018/02/11 Python
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
python psutil监控进程实例
2019/12/17 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
精细化工应届生求职信
2013/11/17 职场文书
国贸专业个人求职信范文
2014/01/08 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
阅兵口号
2014/06/19 职场文书
个人主要事迹材料
2014/08/26 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
css3带你实现3D转换效果
2022/02/24 HTML / CSS