Forráskód Böngészése

阿里云IP地址查询

locky 2 éve
szülő
commit
a07a52b905
2 módosított fájl, 42 hozzáadás és 5 törlés
  1. 12 5
      Controller/TestApi.py
  2. 30 0
      Object/IPQueryObject.py

+ 12 - 5
Controller/TestApi.py

@@ -30,6 +30,7 @@ from Model.models import Order_Model, Store_Meal, DeviceLogModel, VodBucketModel
     TestSerialRepetition, TestDeviceFindSerial, UIDCompanySerialModel, CompanySerialModel, LogModel, Device_User
 from Object.AWS.AmazonS3Util import AmazonS3Util
 from Object.AliPayObject import AliPayObject
+from Object.IPQueryObject import IPQuery
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -569,11 +570,17 @@ class testView(View):
         return HttpResponse(json.dumps(response, ensure_ascii=False),
                             content_type="application/json,charset=utf-8")
 
-    def ip(self, response):
-        ip = '67.220.90.13'
-        country_id = Device_Region().get_device_region(ip)
-        print(country_id)
-        return response.json(0)
+    @staticmethod
+    def ip(response):
+        ip = '120.237.157.181'
+        try:
+            ip_qs = IPQuery(ip)
+            district, city = ip_qs.district, ip_qs.city
+            addr = '{}/{}'.format(district, city)
+            print(addr)
+            return response.json(0, {ip: addr})
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
     def configType(self, response):
         print(SERVER_TYPE)

+ 30 - 0
Object/IPQueryObject.py

@@ -0,0 +1,30 @@
+# @Author    : Rocky
+# @File      : IPQueryObject.py
+# @Time      : 2023/8/16 8:56
+import requests
+
+
+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 = None
+        self.city = None
+
+        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:
+                self.district, self.city = res_data['data']['district'], res_data['data']['city']