吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 962|回复: 7
收起左侧

[求助] php获取和传递ip信息

[复制链接]
ccc0120 发表于 2021-9-23 08:06
本地群晖搭建的web自己玩的平台,想实现记录访问者的ip,目前采用了百度云(实际是ip138)的查ip地址信息的接口,但是如何把访问群晖内web的客户端ip传递给百度云接口呢?网络搜索了好多都显示的是我家里路由器的局域网地址,而不是访问者的ip,请教各位大神了,谢谢。
附百度云用的接口:
<?php
    $headers = array();
    array_push($headers, "X-Bce-Signature:AppCode/" . "您的AppCode");
    array_push($headers, "Content-Type".":"."application/json;charset=UTF-8");
    $url = "http://gwgp-uhhqextob4p.n.bdcloudapi.com/query/?ip=.$ip&datatype=json&callback=callback&";
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, true);
    //var_dump(curl_exec($curl));
?>

网络上找到获取ip的代码诸如:
function getIP(){
        global $ip;
        if (getenv("HTTP_CLIENT_IP"))
        $ip = getenv("HTTP_CLIENT_IP");
        else if(getenv("HTTP_X_FORWARDED_FOR"))
        $ip = getenv("HTTP_X_FORWARDED_FOR");
        else if(getenv("REMOTE_ADDR"))
        $ip = getenv("REMOTE_ADDR");
        else $ip = "Unknow";
        return $ip;
}
好几个都不行,显示的是本地路由地址。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

brightwill 发表于 2021-9-23 11:38
ip不做全局变量试试   
<?php
    $headers = array();
    array_push($headers, "X-Bce-Signature:AppCode/" . "您的AppCode");
    array_push($headers, "Content-Type".":"."application/json;charset=UTF-8");
    $ip = getIP();
    $url = "http://gwgp-uhhqextob4p.n.bdcloudapi.com/query/?ip=.$ip&datatype=json&callback=callback&";
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, true);
    //var_dump(curl_exec($curl));
?>

//网络上找到获取ip的代码诸如:
function getIP(){
        //global $ip;
        if (getenv("HTTP_CLIENT_IP"))
        $ip = getenv("HTTP_CLIENT_IP");
        else if(getenv("HTTP_X_FORWARDED_FOR"))
        $ip = getenv("HTTP_X_FORWARDED_FOR");
        else if(getenv("REMOTE_ADDR"))
        $ip = getenv("REMOTE_ADDR");
        else $ip = "Unknow";
        return $ip;
}
Teachers 发表于 2021-9-23 15:31
 楼主| ccc0120 发表于 2021-9-23 20:11
 楼主| ccc0120 发表于 2021-9-23 20:13
@Teachers,谢谢,麻烦看看server的信息
微信图片_20210923200856.jpg
 楼主| ccc0120 发表于 2021-9-23 20:14
Teachers 发表于 2021-9-23 15:31
打印一下 $_SERVER 看看

图片中***.kooldns.cn是内网穿透访问群晖web站点的域名
brightwill 发表于 2021-9-24 09:04

是不是做了中转代{过}{滤}理什么的了,不然是可以正常获取到客户ip的
 楼主| ccc0120 发表于 2021-9-24 09:28
brightwill 发表于 2021-9-24 09:04
是不是做了中转代{过}{滤}理什么的了,不然是可以正常获取到客户ip的

没有啊,就是群晖上建立的web,由于没有公网ip,通过ddnsto的内网穿透访问的么
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表