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

作者:hebedich 时间:2023-06-18 08:34:26 

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

<?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,获取,客户端IP,IP信息
0
投稿

猜你喜欢

  • 如何解决国外空间显示乱码问题

    2007-11-18 14:28:00
  • sql2005与sql200数据导入导出

    2009-03-13 13:16:00
  • 一文读懂吞吐量(TPS)、QPS、并发数、响应时间(RT)概念

    2022-04-06 14:58:25
  • Win11平台安装和配置NeoVim0.8.2编辑器搭建Python3开发环境详细过程(2023最新攻略)

    2023-06-06 21:28:07
  • SQL对冗余数据的删除重复记录只保留单条的说明

    2024-01-17 07:24:11
  • sql server中datetime字段去除时间的语句

    2024-01-23 17:47:57
  • python常见读取语音的3种方法速度对比

    2021-03-08 11:12:33
  • Django视图、传参和forms验证操作

    2023-03-04 09:17:03
  • 教你一步步利用python实现贪吃蛇游戏

    2023-09-21 13:23:27
  • 一些建站常用简单html代码

    2008-06-01 13:17:00
  • Python基本知识点总结

    2022-06-04 13:35:49
  • JS实现div模块的截图并下载功能

    2024-05-03 11:10:39
  • Go开源项目分布式唯一ID生成系统

    2024-02-14 22:08:15
  • 详解字典树Trie结构及其Python代码实现

    2023-07-07 18:18:41
  • 运用Python快速的对MySQL数据库进行重命名

    2024-01-17 22:36:25
  • mysql的XA事务恢复过程详解

    2024-01-18 07:44:22
  • python glom模块的使用简介

    2021-08-21 10:22:02
  • 详解windows下vue-cli及webpack 构建网站(四) 路由vue-router的使用

    2024-05-21 10:31:02
  • Python设计模式行为型观察者模式

    2022-02-20 12:32:58
  • php实现的简单日志写入函数

    2024-05-02 17:33:43
  • asp之家 网络编程 m.aspxhome.com