php获取用户IP地址
2016-03-14 17:54
489 查看
一、获取用户客户端的IP
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { $ip = getenv('REMOTE_ADDR'); } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { $ip = $_SERVER['REMOTE_ADDR']; } $clientIp = preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
二、根据用户IP获取用户所在城市
$link = sprintf('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=%s', $clientIp);@preg_match('/{[\s\S]*?}/', curl_get($link, 3), $match);$result= @json_decode(@array_shift($match), true);if($result && $result['ret'] > 0){$city = !empty($result['city']) ? $result['city'] : (!empty($result['province']) ? $result['province'] : $result['country']);
echo $city;}
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 房产界已上市和IPO路上的难兄难弟:房天下与房多多
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- 雷军是谁,他为什么而奋斗?小米上市和雷军的英雄主义
- Php Installing An Expansion
- IP网络路由技术
- 如何利用“IP地址欺骗”
- 新手看招:避免网络 IP 地址被非法修改
- 网络管理之IP地址篇
- ip地址基础知识
- 脚本之家因服务器资源紧张 换了ip并升级了带宽
- IP地址组成与类型
- 计算机名DNS网关IP(大家可以用来学习)