我想在我的android应用里面根据用户所在的地理位置显示天气预报。
我的思路是这样的,请求在我的服务器上的php脚本获取用户的ip地址,然后用这个ip地址请求第三方的api获取所在的城市,再用这个城市名请求第三方的api获取天气预报信息。
然后我在服务器的获取api脚本是这样的
if(getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}elseif(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,我想获取的是用户所在地的ip,而不是手机卡所属地的ip,我该怎么办?
还有,我在android应用里获取所在地天气的方法是否合理 ?
谢谢大神们 !!!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
首先不能使用IP进行定位
既然是Android客户端,一般的解决思路应该是:
Android客户端获取地理位置
根据地理位置判断用户所在地区
根据地区获取天气情况
对于手机用户,不能简单的用ip进行定位,应该使用浏览器的定位api进行定位,或使用百度、高德api进行定位
https://www.juhe.cn/docs/api/...
聚合数据的这个接口免费
定位的话当然是使用GPS啦,使用ip没那么准,使用VPN的话就抓瞎了。
Android客户端传参数吧,它什么都能传给你...