在Flask decorator函数中获取IP地址和端口

2024-06-02 07:43:14 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在Flask中的decorator函数中获取发送请求的客户机的IP地址和端口?在

from flask import Flask, request, jsonify
from functools import wraps
app = Flask(__name__)

def check_auth(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        print(request)
        ###  Here I need the IP address and port of the client
        return f(*args, **kwargs)
    return decorated_function

@app.route('/test', methods=['POST'])
@check_auth
def hello():
    json = request.json
    json['nm'] = 'new name2'
    jsonStr = jsonify(json)
    return jsonStr

Tags: fromimportauthjsonappflaskreturnrequest
1条回答
网友
1楼 · 发布于 2024-06-02 07:43:14

您可以使用Flask的request.environ()函数来获取客户端的远程端口和IP地址:

from flask import request
from functools import wraps

def check_auth(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        print(request)
        ###  Here I need the IP address and port of the client
        print("The client IP is: {}".format(request.environ['REMOTE_ADDR']))
        print("The client port is: {}".format(request.environ['REMOTE_PORT']))
        return f(*args, **kwargs)
    return decorated_function

装潢师会印一些东西,比如:

^{pr2}$

相关问题 更多 >