php获取和传递ip信息
本地群晖搭建的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;
}
好几个都不行,显示的是本地路由地址。 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;
} 打印一下 $_SERVER 看看 brightwill 发表于 2021-9-23 11:38
ip不做全局变量试试
还是不行 @Teachers,谢谢,麻烦看看server的信息 Teachers 发表于 2021-9-23 15:31
打印一下 $_SERVER 看看
图片中***.kooldns.cn是内网穿透访问群晖web站点的域名 ccc0120 发表于 2021-9-23 20:11
还是不行
是不是做了中转代{过}{滤}理什么的了,不然是可以正常获取到客户ip的 brightwill 发表于 2021-9-24 09:04
是不是做了中转代{过}{滤}理什么的了,不然是可以正常获取到客户ip的
没有啊,就是群晖上建立的web,由于没有公网ip,通过ddnsto的内网穿透访问的么
页:
[1]