IP定位,天气接口

Posted 万隆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IP定位,天气接口相关的知识,希望对你有一定的参考价值。

首先获取IP

////获得本地真实IP
function get_onlineip() {
$ip_json = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=myip");
$ip_arr=json_decode(stripslashes($ip_json),1);
if($ip_arr[\'code\']==0)
{
return $ip_arr[\'data\'][\'ip\'];
}

}

这种百度一大堆,但是可能有时候在本地测试没有用,代码放到服务器上就有用了,

通过IP再获取城市
////根据ip获得访客所在地地名
function Get_Ip_From($ip=\'\'){
if(empty($ip)){
$ip = self::get_onlineip();
}
$ip_json=@file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);//根据taobao ip
$ip_arr=json_decode(stripslashes($ip_json),1);
if($ip_arr[\'code\']==0)
{
return $ip_arr;
}
else
{
return false;
}

}

////获取访客操作系统
function Get_Os(){
if(!empty($_SERVER[\'HTTP_USER_AGENT\'])){
$OS = $_SERVER[\'HTTP_USER_AGENT\'];
if (preg_match(\'/win/i\',$OS)) {
$OS = \'Windows\';
}
elseif (preg_match(\'/mac/i\',$OS)) {
$OS = \'MAC\';
}
elseif (preg_match(\'/linux/i\',$OS)) {
$OS = \'Linux\';
}
elseif (preg_match(\'/unix/i\',$OS)) {
$OS = \'Unix\';
}
elseif (preg_match(\'/bsd/i\',$OS)) {
$OS = \'BSD\';
}
else {
$OS = \'Other\';
}
return $OS;
}
else{
return "unknow";
}
}

获取天气,但是只能都是3秒访问一次,我的解决方法,把今天这个城市的天气存到数据库中,然后从数据库读取
  //天气,要传入一个城市
public function weather($Position){


$weather =file_get_contents("http://www.sojson.com/open/api/weather/json.shtml?city=$Position");
// dd($weather);
return $ip_arr=json_decode($weather,true);
// return $weather;
}

这是我获取天气的代码,看上去觉得冗余很多,而且这些接口服务器会降低网页的速度

 


以上是关于IP定位,天气接口的主要内容,如果未能解决你的问题,请参考以下文章

Android 天气APP获取定位信息

iOS定位和获取当前天气

php 接口获取公网ip并获取天气接口信息

自娱自乐的API接口

免费天气api_高速稳定的天气数据_高速稳定的天气API接口

android端免费获取天气信息的服务器接口有么