PHP实现获取客户端IP并获取IP信息


Posted in PHP onMarch 17, 2015

代码很简洁,功能很实用,这里就不多废话了,直接奉上:

<?php

/**

 * 获取客户端IP

 * @param  integer $type 返回类型 0:string,1:long

 * @return string|long

 */

function getClientIp($type = 0) {

    $ip = NULL;

    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {

        $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

        $pos = array_search('unknown',$arr);

        if(false !== $pos) unset($arr[$pos]);

        $ip  = trim($arr[0]);

    }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {

        $ip = $_SERVER['HTTP_CLIENT_IP'];

    }elseif (isset($_SERVER['REMOTE_ADDR'])) {

        $ip = $_SERVER['REMOTE_ADDR'];

    }

    $long = sprintf("%u", ip2long($ip));

    $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);

    return $ip[$type];

}

/**

 * 获取IP信息

 * @param  string|long $ip  IP地址

 * @return array

 */

function getIpInfo($ip)

{

    if (is_long($ip)) {

        $ip = long2ip($ip);

    }

    $api = 'http://ip.taobao.com/service/getIpInfo.php';

    $ret = file_get_contents($api . '?ip=' . $ip);

    $ret = json_decode($ret, true);

    if ($ret['code'] == 0) {

        return $ret['data'];

    } 

    return array();

}

以上就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
教你如何把一篇文章按要求分段
Oct 09 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
php 过滤器实现代码
Aug 09 PHP
php addslashes 利用递归实现使用反斜线引用字符串
Aug 05 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
php中smarty区域循环的方法
Jun 11 PHP
PDO的安全处理与事物处理方法
Oct 31 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 PHP
详解PHP swoole process的使用方法
Aug 26 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 PHP
支付宝接口开发集成支付环境小结
Mar 17 #PHP
php读取文件内容到数组的方法
Mar 16 #PHP
php实现以只读方式打开文件的方法
Mar 16 #PHP
php实现在服务器上创建目录的方法
Mar 16 #PHP
php实现删除空目录的方法
Mar 16 #PHP
php上传文件并存储到mysql数据库的方法
Mar 16 #PHP
php保存信息到当前Session的方法
Mar 16 #PHP
You might like
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
PHP实现百度人脸识别
2019/05/06 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
Angular2  NgModule 模块详解
2016/10/19 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
Python 专题一 函数的基础知识
2017/03/16 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
Python中如何导入类示例详解
2019/04/17 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
中秋节国旗下演讲稿
2014/09/13 职场文书
乌镇导游词
2015/02/02 职场文书
综合实践活动报告
2015/02/05 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
Java 数据结构七大排序使用分析
2022/04/02 Java/Android