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

<?php
    function get_ip(){
        //判断服务器是否允许$_SERVER
        if(isset($_SERVER)){
            if(isset($_SERVER[‘HTTP_X_FORWARDED_FOR‘])){
                $realip = $_SERVER[‘HTTP_X_FORWARDED_FOR‘];
            }elseif(isset($_SERVER[‘HTTP_CLIENT_IP‘])) {
                $realip = $_SERVER[‘HTTP_CLIENT_IP‘];
            }else{
                $realip = $_SERVER[‘REMOTE_ADDR‘];
            }
        }else{
            //不允许就使用getenv获取
            if(getenv("HTTP_X_FORWARDED_FOR")){
                  $realip = getenv( "HTTP_X_FORWARDED_FOR");
            }elseif(getenv("HTTP_CLIENT_IP")) {
                  $realip = getenv("HTTP_CLIENT_IP");
            }else{
                  $realip = getenv("REMOTE_ADDR");
            }
        }

        return $realip;
    }  

    function getIp(){
        $ip = get_ip();
        if($ip==‘127.0.0.1‘){
            $myIp = ‘myip‘;
        }
        //初始化
        $curl = curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL, ‘http://ip.taobao.com/service/getIpInfo.php?ip=‘.$myIp);
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 0);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //执行命令
        curl_multi_getcontent( $curl );
        $data = curl_exec($curl);
        //关闭URL请求
        curl_close($curl);

        //显示获得的数据
        return json_decode($data,true);
    }

    function weather($chengshi){
        $url = ‘http://wthrcdn.etouch.cn/weather_mini?city=‘.urlencode($chengshi);
        $html = file_get_contents($url);
        $jsondata = gzdecode($html);
        $data=json_decode($jsondata,true);

        $arr=array();
        $arr[‘chengshi‘]=$data[‘data‘][‘city‘];
        $dangtian=$data[‘data‘][‘forecast‘][0];
        $arr[‘gaowen‘]= str_replace("高温 ",null,$dangtian[‘high‘]);
        $arr[‘diwen‘]= str_replace("低温 ",null,$dangtian[‘low‘]);
        $arr[‘tianqi‘]=$dangtian[‘type‘];
        return $arr;
    }

    $area = getIp();
    if(isset($area[‘data‘][‘city‘])){
        $city = $area[‘data‘][‘city‘];
        $weather = weather($city);
        print_r($weather);
    }

原文地址:https://www.cnblogs.com/zhanghanwen16/p/9512032.html

时间: 2024-10-11 21:24:02

php 接口获取公网ip并获取天气接口信息的相关文章

获取公网ip,获取用户城市地址

<?php class GetIp { public static $api = 'http://ip.taobao.com/service/getIpInfo.php?ip='; public static function getAddr() { $ip = $_SERVER['REMOTE_ADDR']; $url = self::$api . $ip; $json = self::curl($url); return $json; } public static function get

.Net一个很有用的帮助类,包含获取获取浏览器版本号、 获取操作系统版本号、获取客户端IP地址、取客户端真实IP、获取公网IP、判断是否是IP格式

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Threading.Tasks;using System.Web; namespace ZC.Common.Log{    class UserHelper    { #region 获取浏览器版本号 /// <summary>   

python从淘宝ip库中获取公网ip的信息

看到一个题目:  从ip.taobao.com中获取公网ip的信息 分析: 1.生成公网IP地址: 2.根据ip.taobao.com返回的代码,用json解析 下面是淘宝的接口说明 ''' 接口说明 1. 请求接口(GET): http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 2. 响应信息: (json格式的)国家 .省(自治区或直辖市).市(县).运营商 3. 返回数据格式: {"code":0,"data&q

Linux学习之命令行获取公网IP方法详解

本文和大家分享的主要是主要是linux命令行获取公网IP相关内容,一起来看看吧,希望对大家学习linux有所帮助. curl ipinfo.io $ curl ipinfo.io { "ip": "36.10.25.4", "city": "Hangzhou", "region": "Zhejiang", "country": "CN", &quo

C#联机获取公网IP

C#获取IP的方式有很多种,这里通过http://www.ipip.net/这个稳定的在线IP库的来获取公网IP. 1 string tempip = "0.0.0.0"; 2 WebRequest wr = WebRequest.Create("http://www.ipip.net/"); 3 Stream s = wr.GetResponse().GetResponseStream(); 4 if (s != null) 5 { 6 StreamReader

自动获取公网ip的脚本

随手写了一个获取公网IP的脚本,其实主要是区分""和``的区别 #!/bin/bash ip_add=`curl -s -4 icanhazip.com` echo "public IP:$ip_add " 在/bin/bash中以上赋值""是取一个字符串的,而``取得是指令运行后的字符串的,当然也可以在此基础上可以运用到iptables,DNS等等的一些脚本里

正则获取公网IP信息

因工作需求,需要用到获取公网IP信息: echo  $(curl -s http://txt.go.sohu.com/ip/soip)|  grep -P -o -i "(\d+\.\d+.\d+.\d+)"

Python 之自动获取公网IP

2017年9月30日 0.预备知识 0.1 SQL基础 ubuntu.Debian系列安装: 1 [email protected]:~/python-script# apt-get install mysql-server Redhat.Centos 系列安装: 1 [[email protected] ~]# yum install mysql-server 登录数据库 1 [email protected]:~ $ mysql -uroot -p -hlocalhost 2 Enter p

JAVA获取公网ip

在ipv4地址稀缺的今天,分配到公网ip几乎是不可能的,但是我拨号之后的ip竟然是公网IP. 将自己的电脑作为服务器·,做点好玩的程序,就成为了可能. 由于运营商的ip是动态分配的公网ip的所以就需要做一个动态解析. 但是又没有服务器,应该怎么办呢? 思路是首先服务端获取公网ip,将IP加密后作为文章发布到莫个知名论坛上.客户端通过查询这篇文章,并解密来获取ip 这样就可以实现动态解析了 由于电脑还加了个路由器,所以不能直接获取公网ip,此时就需要借助第三方网站了. 百度搜索ip会出现 通过分析