41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
"""
|
|
初始化插件
|
|
"""
|
|
import os
|
|
import logging
|
|
from flask import Flask, request
|
|
|
|
# 获取插件所在的目录(结尾没有分割符号)
|
|
dir_path = os.path.dirname(__file__).replace("\\", "/")
|
|
folder_name = dir_path[dir_path.rfind("/") + 1:] # 插件文件夹名称
|
|
|
|
|
|
def event_init(app: Flask):
|
|
"""初始化完成时会调用这里"""
|
|
|
|
# 更改IP地址,只有在最新版的flask中才能生效
|
|
@app.before_request
|
|
def before_request():
|
|
request.remote_addr = get_user_ip(request)
|
|
|
|
|
|
def get_user_ip(request):
|
|
"""获取用户真实IP"""
|
|
if 'HTTP_X_FORWARDED_FOR' in request.headers:
|
|
arr = request.headers['HTTP_X_FORWARDED_FOR'].strip().split(",")
|
|
i = 0
|
|
while i < len(arr):
|
|
if arr[i].find("unknown") != -1:
|
|
del arr[i]
|
|
else:
|
|
i += 1
|
|
if len(arr) != 0:
|
|
return arr[0].strip()
|
|
elif 'HTTP_CLIENT_IP' in request.headers:
|
|
return request.headers['HTTP_CLIENT_IP']
|
|
elif 'REMOTE_ADDR' in request.headers:
|
|
return request.headers['REMOTE_ADDR']
|
|
elif 'X-Forwarded-For' in request.headers:
|
|
return request.headers['X-Forwarded-For']
|
|
return request.remote_addr
|