文档章节

php封装函数之获取用户IP

z
 zjnn
发布于 2017/03/31 19:56
字数 143
阅读 33
收藏 0

function getIp(){

    static $realip = null;//第一次调用赋值null

    if($realip !== null){

        //如果$realip不等于null,则说明不是第一次调用,直接返回ip值

        return $realip;

    }

    if(getenv( 'REMOTE_ADDR')){

        $realip = getenv( 'REMOTE_ADDR');

    }else if (getenv( 'HTTP_CLIENT_IP')){

        $realip = getenv('HTTP_CLIENT_IP');

    }else if(getenv('HTTP_X_FORWARDED_FOR')){

        $realip = getenv('HTTP_X_FORWARDED_FOR');

    }

    return $realip;

}

获取ip成功后,存入数据库中,数据库中的ip字段为int型,而获取的ip为string类型

先使用ip2long()转化为int型,但转化后为负数,再使用sprintf('%u',参数2)转换为无符号的整形

sprintf('$u',ip2long(getIp()));

© 著作权归作者所有

上一篇: php-分页类
下一篇: mysql基本语句10条
z
粉丝 0
博文 24
码字总数 15955
作品 0
淮南
程序员
私信 提问
C基础库--libfastcommon

libfastcommon是一款开源的C基础库,她是从FastDFS项目中剥离出来的C基础库。这个库非常简单、高效和稳定,提供的函数主要包括如下几类: string:字符串处理; logger:日志记录,支持日志轮...

fastdfs
2017/03/08
838
0
beego 之 context 上下文模块

针对 HTTP 请求中,request (Input)和 response (Output)的进一步封装。context 对象是对 Input 和 Output 的封装。 Input 对象 具体方法如下:+ Protocol 获取用户请求的协议,例如 HT...

Sunki
07/10
49
0
DT二次开发之-常量全局变量说明及使用

什么是destoon常量? destoon常量是指destoon官方的开发者在开发时封装在destoon程序中的一些系统设置参数 这些参数是固定的,我们是不能修改的,也不需要去修改。(PS:只要你牛掰,系统全改...

68喜科技
2018/03/24
0
0
获取用户的真实ip

常见的坑有两个: 一、获取的是内网的ip地址。在nginx作为反向代理层的架构中,转发请求到php,java等应用容器上。结果php获取的是nginx代理服务器的ip,表现为一个内网的地址。php获取REMOT...

蜗牛奔跑
2016/03/08
178
0
php常用40个代码片段

在编写代码的时候有个神奇的工具总是好的!下面这里收集了 40+ PHP 代码片段,可以帮助你开发 PHP 项目。 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧~ 1....

我心中有猛狗
2018/01/30
30
0

没有更多内容

加载失败,请刷新页面

加载更多

JS 打印控制

JS 打印控制 var PrintStartString = "<!--打印开始标示符-->";//设置打印开始区域var PrintEndString = "<!--打印结束标示符-->";//设置打印结束区域var HtmlText = window.do......

DrChenXX
30分钟前
6
0
LevelDB:使用介绍

LevelDB 提供的接口其实很简单,下面举例进行简单说明。 安装 git clone https://github.com/google/leveldb cd leveldb mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. ......

slagga
35分钟前
8
0
《JavaScript正则表达式迷你书》读书笔记

正则基础 常见简写形式 字符组 具体含义 记忆方式 \d 表示 [0-9]。表示是一位数字。 其英文是 digit(数字) \D 表示 [^0-9]。表示除数字外的任意字符。 \w 表示 [0-9a-zA-Z_]。表示数字、大小...

muzi131313
40分钟前
6
0
Git的反悔操作

概述 这次主要来讲讲Git的反悔操作,自己平时在写代码的过程中经常会出现想要弃用所有的改动或回滚到上一次commit的情况。Git上的反悔操作有reset、rebase、revert等,每个操作各有区别和对应...

duduYZ
41分钟前
4
0
实现双向绑定Proxy比defineproperty优劣如何?

前言 双向绑定其实已经是一个老掉牙的问题了,只要涉及到MVVM框架就不得不谈的知识点,但它毕竟是Vue的三要素之一. Vue三要素 响应式: 例如如何监听数据变化,其中的实现方法就是我们提到的双向...

寻找海蓝
53分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部