浏览代码

Create app.py

蘭雅sRGB 3 年之前
父节点
当前提交
67f422adaf
共有 1 个文件被更改,包括 44 次插入0 次删除
  1. 44 0
      app.py

+ 44 - 0
app.py

@@ -0,0 +1,44 @@
+import ipdb, ipaddress
+from flask import Flask, request, render_template, jsonify
+from socket import gethostbyname
+
+db = ipdb.BaseStation("qqwry.ipdb")
+app = Flask(__name__)
+
+def iplocated(ip):
+    city = db.find(ip, "CN")
+    return ip + " @" + city[0] + city[1] + city[2] + city[3] + "\n"
+
[email protected]("/ip/")
[email protected]("/ip/<ipaddr>")
+def show_ip(ipaddr=None):
+    # ip 地址为空获得浏览器客户端IP
+    if ipaddr is None:
+        ip = request.remote_addr
+        try:
+            _ip = request.headers["X-Real-IP"]
+            if _ip is not None:
+                ip = _ip
+        except Exception as e:
+            print(e)
+        ipaddr = iplocated(ip)
+        return  render_template('hello.html',  ip=ip, ipaddr=ipaddr)
+
+    else:
+        ip = ipaddr
+
+    # ip地址 从纯真IP数据库 搜索城市定位
+    try:
+        ipaddress.ip_address(ip).is_global
+        ipaddr = iplocated(ip)
+    except:
+        try:
+            ip = gethostbyname(ip)     # 域名反解析得到的IP
+            ipaddr = iplocated(ip)
+        except Exception as e:
+            print(e)
+
+    return ipaddr
+
+# export FLASK_ENV=development   # 调试模式: 修改代码不用重启服务
+# flask run --host=0.0.0.0       # 监听所有公开的 IP