android ,php怎么获取客户的ip?
PHP中文网
PHP中文网 2017-04-11 09:23:14
[PHP讨论组]
我想在我的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应用里获取所在地天气的方法是否合理 ? 

谢谢大神们 !!!
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(5)
ringa_lee

首先不能使用IP进行定位

既然是Android客户端,一般的解决思路应该是:
Android客户端获取地理位置
根据地理位置判断用户所在地区
根据地区获取天气情况

大家讲道理

对于手机用户,不能简单的用ip进行定位,应该使用浏览器的定位api进行定位,或使用百度、高德api进行定位

天蓬老师

https://www.juhe.cn/docs/api/...
聚合数据的这个接口免费

怪我咯

定位的话当然是使用GPS啦,使用ip没那么准,使用VPN的话就抓瞎了。

PHPz

Android客户端传参数吧,它什么都能传给你...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号