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 相关文章推荐
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
php获取mysql字段名称和其它信息的例子
Apr 14 PHP
在PHP中使用X-SendFile头让文件下载更快
Jun 01 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
Aug 27 PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 PHP
基于thinkPHP框架实现留言板的方法
Oct 17 PHP
php实现的双色球算法示例
Jun 20 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
php把数组值转换成键的方法
2015/07/13 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
javascript几个易错点记录
2014/11/26 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
Form表单及django的form表单的补充
2019/07/25 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
高中美术教学反思
2014/01/19 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
asyncio异步编程之Task对象详解
2022/03/13 Python
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android