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

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

复制代码 代码如下:

<?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();
}

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

时间: 2024-09-20 17:57:15

PHP实现获取客户端IP并获取IP信息_php技巧的相关文章

php通过淘宝API查询IP地址归属等信息_php技巧

淘宝公司提供了一个很好用的IP地理信息查询接口. 在这里:http://ip.taobao.com/ TaobaoIPQuery2这个类将极大的简化相关的信息查询. 类 TaobaoIPQuery2 文件: <?php /* Usage: * $IPInfo = TaobaoIPQuery2::getIPInfo('IPAddress'); */ Class TaobaoIPQuery2{ private static $_requestURL = 'http://ip.taobao.com/s

javaweb-java如何获取客户端登入时的ip

问题描述 java如何获取客户端登入时的ip 我做了一个网站,如何获取客户端登入时客户端的ip,求大神指教 解决方案 /** * 通过HttpServletRequest返回IP地址 * @param request HttpServletRequest * @return ip String * @throws Exception */ public String getIpAddr(HttpServletRequest request) throws Exception { String i

JavaScript获取客户端计算机硬件及系统等信息

 文为大家详细介绍下如何使用JavaScript获取客户端计算机硬件及系统等信息,下面有个不错的示例,感兴趣的朋友可以参考下 JavaScript 获取客户端计算机硬件及系统信息  通过WMI来实现获取客户端计算机硬件及系统信息:    代码如下: function getSysInfo(){  var locator = new ActiveXObject ("WbemScripting.SWbemLocator");  var service = locator.ConnectSe

PHP 获取客户端真实IP地址多种方法小结_php技巧

经过复杂的判断与算是的获取IP地址函数 复制代码 代码如下: function getIP() { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (getenv('HTTP_X_FORWARDED')) { $ip = getenv('

PHP跨平台获取服务器IP地址自定义函数分享_php技巧

近期需要完善一个log机制,监控来自不同服务器的机器的脚本执行状况,特针对windows和Linux及web与命令行模式书写了一个函数来兼容. 写了如下一个function来,可以实现上面的需求: 复制代码 代码如下: function getServerAddr() {       //运行 web app       if (isset($_SERVER["SERVER_ADDR"])) {           return $_SERVER["SERVER_ADDR&q

JavaScript获取客户端计算机硬件及系统等信息的方法_javascript技巧

JavaScript 获取客户端计算机硬件及系统信息 通过WMI来实现获取客户端计算机硬件及系统信息: 复制代码 代码如下: function getSysInfo(){ var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); //CPU信息 var cpu = new Enumerator (service.E

php限制ip地址范围的方法_php技巧

本文实例讲述了php限制ip地址范围的方法.分享给大家供大家参考.具体如下: 只有在限定范围内的ip地址才能访问 function get_real_ipaddress() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { return $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { return $_SERVER['HTTP_X_FORWAR

PHP获取文件夹内文件数的方法_php技巧

本文实例讲述了PHP获取文件夹内文件数的方法.分享给大家供大家参考.具体实现方法如下: function getfilecounts($ff){ $dir = './'.$ff; $handle = opendir($dir); $i = 0; while(false !== $file=(readdir($handle))){ if($file !== '.' && $file != '..') { $i++; } } closedir($handle); return $i; } 希望

php实现QQ空间获取当前用户的用户名并生成图片_php技巧

本文实例讲述了php实现QQ空间获取当前用户的用户名并生成图片的方法.分享给大家供大家参考.具体如下: 最近发现空间里经常会转载一些含有当前用户昵称和qq号的图片,很好奇,研究了一下原理 原理很简单,图片是利用php生成的,好吧,直接上代码 图片源代码: <?php $ment = $_SERVER["HTTP_REFERER"]; if($ment == 'http://cnc.qzs.qq.com/qzone/newblog/v5/editor.html'){ header(