自动获取ip并定位当前位置天气情况

好吧,很多天没有更新,之前说的补上也没有,一定是工作太忙的缘故。。。。。。。。趁着偷闲写了下昨天一哥们要的自动获取ip得到当前位置的天气情况,以下为源代码,简单写下的,基础功能OK,有别的需求美化以下就可以,撤了老大叫我干活了,真是苦兮兮

import requests
import json
import socket

url ='http://ip-api.com/json'
url_response = requests.get(url)
ip_data = json.loads(url_response.text)
# print(ip_data)
# print(ip_data["lat"])
# print(ip_data["lon"])
print("city:%s"%ip_data["city"])

def get_host_ip():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('8.8.8.8', 80))
        ip = s.getsockname()[0]
    finally:
        s.close()
    print("ip地址为:%s"%ip)

def request_data():
    lat = ip_data["lat"]
    long = ip_data["lon"]
    api_key = "62bf94de3c232f30f6f3ee5bb534c2f3"
    url = "https://api.darksky.net/forecast/%s/%s,%s?units=si" % (api_key, lat, long)
    response = requests.get(url)
    dark_data = json.loads(response.text)
    print("天气 %s"%(dark_data["daily"]["data"][0]["icon"]))
    print("最低温度为 %s°"%(dark_data["daily"]["data"][0]["temperatureMin"]))
    print("最高温度为 %s°"%(dark_data["daily"]["data"][0]["temperatureMax"]))

get_host_ip()
request_data()

你可能感兴趣的:(Python)