app.py 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. from typing import Text
  2. import ipdb, ipaddress, requests, re, json
  3. from flask import Flask, request, render_template, jsonify
  4. from socket import gethostbyname
  5. app = Flask(__name__)
  6. from ips import *
  7. from getmd import *
  8. @app.route("/")
  9. def hello():
  10. ip = getip()
  11. ipaddr = iplocated(ip)
  12. if is_Mozilla():
  13. return render_template('hello.html', ip=ip, ipaddr=ipaddr, city=getcity(ip))
  14. else:
  15. return ip
  16. @app.route("/ip/maps/")
  17. def maps():
  18. ip = getip()
  19. # bdgps = ip2bdgps(ip) # 百度地图 IP 定位 API 比较慢 ,换用 免费 高德定位
  20. bdgps = ip2gdgps(ip)
  21. return render_template('maps.html', bdgps=bdgps)
  22. @app.route("/ip/bdmaps/")
  23. def bdmaps():
  24. ip = getip()
  25. bdgps = ip2bdgps(ip) # 百度地图 IP 定位 API 比较慢
  26. return render_template('maps.html', bdgps=bdgps)
  27. @app.route("/ip/")
  28. @app.route("/ip/<ipaddr>")
  29. def show_ip(ipaddr=None):
  30. # ip 地址为空获得浏览器客户端IP
  31. if ipaddr is None:
  32. ip = getip()
  33. ipaddr = iplocated(ip)
  34. if is_Mozilla():
  35. return render_template('hello.html', ip=ip, ipaddr=ipaddr, city=getcity(ip))
  36. else:
  37. return ip
  38. else:
  39. ip = ipaddr
  40. # ip地址 从纯真IP数据库 搜索城市定位
  41. try:
  42. ipaddress.ip_address(ip).is_global
  43. ipaddr = iplocated(ip)
  44. except:
  45. try:
  46. ip = gethostbyname(ip) # 域名反解析得到的IP
  47. ipaddr = iplocated(ip)
  48. except Exception as e:
  49. print(e)
  50. return ipaddr
  51. @app.route("/ips/", methods=['POST', 'GET'])
  52. def getips():
  53. if request.method == 'POST':
  54. ips_text = request.form['ips']
  55. ips = select_ips(ips_text)
  56. return render_template('ips.html', ips=ips)
  57. else:
  58. return render_template('ips.html')
  59. @app.route("/getmd/", methods=['POST', 'GET'])
  60. def getmd():
  61. if request.method == 'POST' and request.form['passkey'] == make_passkey('262235.xyz') :
  62. urls = request.form['urls']
  63. urls_list = check_urls(urls)
  64. urls = urls_lines(urls_list)
  65. if len(urls_list) < 5 :
  66. texts = '测试 PASSKEY 一次只允许最多抓取5篇文章,当前数量:' + str(len(urls_list))
  67. texts += pull_urls(urls_list)
  68. return render_template('getmd.html', urls=urls, texts=texts, passkey=make_passkey('262235.xyz'))
  69. else:
  70. texts = '文章大于5: 测试 PASSKEY 一次只允许最多抓取5篇文章,当前数量:' + str(len(urls_list))
  71. return render_template('getmd.html', urls=urls, texts=texts, passkey=make_passkey('262235.xyz'))
  72. else:
  73. if request.method == 'POST' and request.form['passkey'] == 'UUID-1234-5678-1234' :
  74. urls = request.form['urls']
  75. urls_list = check_urls(urls)
  76. urls = urls_lines(urls_list)
  77. texts = '授权 PASSKEY 无限制,当前数量:' + str(len(urls_list))
  78. texts += pull_urls(urls_list)
  79. return render_template('getmd.html', urls=urls, texts=texts)
  80. pass
  81. return render_template('getmd.html', passkey=make_passkey('262235.xyz'))
  82. if __name__ == '__main__':
  83. # app.run(host='0.0.0.0')
  84. app.run(host='0.0.0.0', debug=True, port=80)
  85. # export FLASK_ENV=development # 调试模式: 修改代码不用重启服务
  86. # flask run --host=0.0.0.0 # 监听所有公开的 IP