| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- # @Author    : Rocky
 
- # @File      : IPWeatherObject.py
 
- # @Time      : 2023/8/16 8:56
 
- import requests
 
- from Model.models import IPAddr
 
- class IPQuery:
 
-     """
 
-     阿里云IP地址查询
 
-     https://market.aliyun.com/products/57002003/cmapi021970.html?spm=5176.2020520132.recommend-card.dbottom-suggestion.33e17218GYjWDt#sku=yuncode15970000020
 
-     """
 
-     def __init__(self, ip):
 
-         self.appcode = 'd7d63b34b1d54214be446608a57ff0a2'
 
-         self.host = 'https://c2ba.api.huachen.cn'
 
-         self.path = '/ip'
 
-         self.district = ''  # 区
 
-         self.city = ''      # 市
 
-         self.region = ''    # 省/州
 
-         self.country_id = ''
 
-         param = 'ip=' + ip
 
-         url = self.host + self.path + '?' + param
 
-         # 获取ip的区级和城市信息
 
-         headers = {'Authorization': 'APPCODE ' + self.appcode}
 
-         res = requests.get(url=url, headers=headers)
 
-         if res.status_code == 200:
 
-             # 反序列化响应数据
 
-             res_data = eval(res.content.decode('utf-8'))
 
-             if res_data['ret'] == 200:
 
-                 district = res_data['data']['district']
 
-                 city = res_data['data']['city']
 
-                 region = res_data['data']['region']
 
-                 country_id = res_data['data']['country_id']
 
-                 # 国内城市数据不为空字符,拼上'市'字
 
-                 if country_id == 'CN' and city != '':
 
-                     city += '市'
 
-                 # ip地址信息存表
 
-                 IPAddr.objects.create(ip=ip, district=district, city=city, region=region, country_code=country_id)
 
-                 # 确定天气城市
 
-                 if district != '':
 
-                     self.district = district
 
-                 elif city != '':
 
-                     self.district = city
 
-                 self.country_id = country_id
 
- class WeatherInfo:
 
-     def __init__(self, city_id):
 
-         self.appcode = 'd7d63b34b1d54214be446608a57ff0a2'
 
-         self.headers = {'Authorization': 'APPCODE ' + self.appcode,
 
-                         'Content-Type': 'application/x-www-form-urlencoded'}
 
-         self.city_id = city_id
 
-     def get_city_weather(self):
 
-         url = "https://aliv18.data.moji.com/whapi/json/alicityweather/condition"  # 获取实时天气
 
-         data = {'cityId': self.city_id}
 
-         response = requests.post(url, headers=self.headers, data=data, verify=False)
 
-         if response.status_code == 200:
 
-             result = response.json()
 
-             if result['code'] == 0:
 
-                 # 返回温湿度
 
-                 return result['data']['condition']['temp'], result['data']['condition']['humidity']
 
-         return None, None
 
 
  |