Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >纯净得只剩下字的访问IP查询API

纯净得只剩下字的访问IP查询API

作者头像
沈唁
发布于 2018-05-24 09:11:49
发布于 2018-05-24 09:11:49
1.2K00
代码可运行
举报
文章被收录于专栏:沈唁志沈唁志
运行总次数:0
代码可运行

看到一个好玩的,就随手收藏一下,本 API 作用:获取用户真实 IP,而获取用户 IP 常见的坑有两个,开发支付的时候也需要获取用户的真实 IP:

  • 获取的是内网的 ip 地址。在 Nginx 作为反向代理层的架构中,转发请求到 PHP,Java 等应用容器上。结果 PHP 获取的是 Nginx 代理服务器的 ip,表现为一个内网的地址。PHP 获取 REMOTE_ADDR 就是这样一个情况(内网地址)。
  • 获取的是攻击者伪造的 ip 地址。攻击者可以随便伪造一个头部信息,随便填写一个 ip 放到头部发过来,php 获取到 HTTP_CLIENT_IP 就是这样一个情况。伪造的 ip,导致我们数据库存储是假的 ip,无从真实去判断攻击者的来源。比如批量注册帐号的注册 ip,登录的 ip 等。

操作如下:

将 PHP 代码保存为 index.php,然后上传到网站根目录下的 IP 文件夹(这个自己随机定义)

现在,浏览器访问 http://你的域名/ip/ 就可以看到你的 IP 了

PHP 代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
  /**
  * 纯净得只剩下字的访问 IP 查询 API | 沈唁志
  * https://qq52o.me/1814.html
  */
    //文本输出编码
    Header('content-type:text/html;Charset=utf-8');
    //定义函数
    function getIP()
    {
        static $realip;
    	//定义常量
        if (isset($_SERVER)){
            if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
                $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
            } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
                $realip = $_SERVER["HTTP_CLIENT_IP"];
            } else {
                $realip = $_SERVER["REMOTE_ADDR"];
            }
        } else {
            if (getenv("HTTP_X_FORWARDED_FOR")){
                $realip = getenv("HTTP_X_FORWARDED_FOR");
            } else if (getenv("HTTP_CLIENT_IP")) {
                $realip = getenv("HTTP_CLIENT_IP");
            } else {
                $realip = getenv("REMOTE_ADDR");
            }
        }
        return $realip;
    }

    $bool = false;

    if ($_GET['code']==='js') {
        echo "function syip(){document.write(\"";
        echo "您的 IP 是:".getip();
        echo "\");}";
    	$bool = true;
       }

    if ($_GET['code']==='js-txt') {
        echo "function syiptxt(){document.write(\"";
        echo getip();
        echo "\");}";
    	$bool = true;
       }

    if (!$bool){   
        echo getip();
    }
?>

实例数据获取

  • 请求地址:https://api.qq52o.me/ip
  • 请求方式:GET
  • 请求参数:接口:code 参数:1. js(返回【您的 IP 是:XXX】)  2.js-txt(仅返回 IP)

使用方法

将下面这段代码放入页面内需要展示 IP 的位置即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript" src="https://api.qq52o.me/ip/?code=js"></script>
<script>syip()</script>

该脚本实质为 document.write 的脚本。

演示一下

syip()

沈唁志|一个PHPer的成长之路! 原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:纯净得只剩下字的访问IP查询API

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用PHP获取访客IP的方法
很多时候,我们需要获取访客 IP 才能去实现一些功能。举个最简单的例子如天气预报,通常先要获取访客的 IP,然后根据访客的 IP 地址去搜索 IP 库得出访客所在地区,最后把访客坐在地区的天气情况给显示。 或者分站功能的网站也通常需要获取访客 IP,然后去搜索 IP 库得知访客所在地后自动切换到相应线路相应的站点。如一些大的分类信息网站几乎都这么实现,如赶集,五八等等。下面贴出的这个方法,可以获取访客的 IP 地址。 function GetIP(){ if (getenv("HTTP_CLIENT_IP
沈唁
2018/05/24
1.8K0
用PHP获取客户端真实IP的函数代码分享
代码如下: <?php function getIp() { $realip = null; if ($realip !== null) return $realip; if
魏杰
2022/12/23
1.6K0
PHP实现redis限制单ip、单用户的访问次数功能
本文实例讲述了PHP实现redis限制单ip、单用户的访问次数功能。分享给大家供大家参考,具体如下:
全栈程序员站长
2022/07/08
1.5K0
php获取客户端IP和服务器端IP[通俗易懂]
在PHP获取客户端IP时,常使用 _SERVER[“REMOTE_ADDR”] 。但如果客户端是使用代理服务器来访问,那取到的是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用_SERVER[“HTTP_X_FORWARDED_FOR”]来读取。
全栈程序员站长
2022/11/15
5K0
php获取客户端真实IP 防止代理和作弊
内容提要:这种情况下同样透露了客户端是使用了代理服务器,但编造了一个虚假的随机IP(220.4.251.159)代替客户端的真实IP来欺骗它……   获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确.但是我们还是尽量找一个比较完善的获取客户端真正ip方法.使用php获取IP的方法能找到很多.
皇上得了花柳病
2020/05/05
2.7K0
判断访问方式添加欢迎信息
希望各位大大可以评论一下小破站 原创文章:https://www.gqink.cn/archives/558/
九霄道长
2021/03/02
7070
PHP 简单的获取用户 IP,系统,浏览器等信息
在使用浏览器发起的 HTTP 请求中,通常会包含一个识别标识。它名为 User Agent,简称 UA。它是一串包含了客户端基础信息的字符串。通过它可以方便的获取客户端的操作系统,语言,浏览器和版本信息。我们可以利用 PHP 分析这些代码,来进行用户访问信息的识别等
Z4
2020/04/22
1K0
巧用社工方式获取好友IP地址
常在水边走,哪有不湿鞋的道理。一不小心就会上当受骗,当我们上当受骗后第一时间想到的是怎样获取骗子的个人信息。而这里QQ便是我们骗子的联系媒介。
逍遥子大表哥
2021/12/18
1.6K0
巧用社工方式获取好友IP地址
getenv(php7.0以上版本不不能使用的问题)[通俗易懂]
REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示
全栈程序员站长
2022/08/09
4640
PHP获取用户访问真实IP地址
在很多时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单$_SERVER[\'REMOTE_ADDR\']就可以了。这篇文章主要为大家详细介绍了PHP获取用户访问IP地址的方法,感兴趣的小伙伴们可以参考一下,以下是获取访客真实IP的代码
V站CEO-西顾
2018/06/09
4.1K0
AppCMS注入及评论xss漏洞
Appcms是一款开源cms系统,适合做手机应用类的网站。官网地址:http://www.appcms.cc/ 这是默认首页,看起来挺不错的:
phith0n
2020/10/16
1.9K0
AppCMS注入及评论xss漏洞
记录访问者的IP地址
{mtitle}前言{/mtitle}  对于一个网站的管理员来说,对访客进行IP记录是必要的。通过进行记录访客的IP,对网站的访问量统计、访客来源地区的分布、对不法访客进行追查等提供了重要的信息。
云计算小黑
2022/12/28
2K0
PHP获取用户访问真实IP地址 - Emlog程序IP黑名单插件
在很多时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单$_SERVER[\'REMOTE_ADDR\']就可以了。这篇文章主要为大家详细介绍了PHP获取用户访问IP地址的方法,感兴趣的小伙伴们可以参考一下,以下是获取访客真实IP的代码
用户8099761
2023/05/10
5170
分享简单代码实现wordpress用户注册IP地址限制
由于某种需要,在某些场景下,我们可能需要限制单一IP注册用户的个数,看 起来复杂,其实实现起来之用一小段代码即可。
于飞云计算
2019/06/24
3K1
分享简单代码实现wordpress用户注册IP地址限制
PHP获取用户访问真实IP地址 - Emlog程序IP黑名单插件
在很多时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单$_SERVER[\'REMOTE_ADDR\']就可以了。这篇文章主要为大家详细介绍了PHP获取用户访问IP地址的方法,感兴趣的小伙伴们可以参考一下,以下是获取访客真实IP的代码 function getIP () { global $_SERVER; if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); }
Youngxj
2018/06/06
2K2
XFF那些事
X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。 Squid 缓存代理服务器的开发人员最早引入了这一HTTP头字段,并由IETF在HTTP头字段标准化草案[1]中正式提出。
yumusb
2020/10/27
2.8K0
php获取用户真实IP和防刷机制
X-Forwarded-For(XFF):  是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段, 格式:clientip,proxy1,proxy2
smy
2018/11/28
4.9K0
php获取用户真实IP和防刷机制
获取访客 IP 的正确姿势
那么究竟应该用哪种呢?我们先来看下 REMOTE_ADDR 、 HTTP_X_FORWARDED_FOR 、 HTTP_CLIENT_IP 是什么。 REMOTE_ADDR 访客 IP ,如果使用代理访问则显示代理 IP HTTP_X_FORWARDED_FOR 访客 IP ,如果不使用代理访问则为空 HTTP_CLIENT_IP 代理服务器 IP ,如果不使用代理访问则为空 注意 REMOTE_ADDR 是无法更改的,而 HTTP_X_FORWARDED_FOR 、 HTTP_CLIENT_IP 是由客户端(一般指代理服务器)自行设定的。
php007
2019/08/16
2K0
获取访客 IP 的正确姿势
php获取客户端ip以及ip伪造
声明:因为使用了cdn之后无法正常的获取客户端ip,则做此次记录,仅供学习交流,请不要用于非法用途,由此教程产生的法律问题均与本人无关!
天方
2022/08/30
5.5K0
代码贴 - 查询本机ip
修一个小bug 凌梦云kangle脚本时不时获取本机ip失效 然后就自己写了这么一个api
Qicloud-W
2023/11/17
5220
相关推荐
使用PHP获取访客IP的方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验