簡體   English   中英

如何在Flask/Connexion中獲取調用者的IP地址?

[英]How to obtain the caller's IP address in Flask/Connexion?

我正在使用 OpenAPI 3.0 規范 (swagger.yml) 並使用 Swagger Codegen 創建相應的 Python Flask 應用程序存根。 這就是我運行應用程序以公開我的 Swagger API 的方式:

app = connexion.App(__name__, specification_dir='./swagger/')
app.app.json_encoder = encoder.JSONEncoder
app.add_api('swagger.yaml', arguments={'title': 'My Test API'})
# add CORS support to send Access-Control-Allow-Origin header
CORS(app.app)

到目前為止,一切都很好。 應用程序邏輯在生成的 Python 存根中處理,這些存根由x-openapi-router-controller: swagger_server.controllers.user_controller

然而,我現在需要訪問HTTP 請求應用程序本身的特定信息,例如根據HTTP_CLIENT_IP 地址做出不同的反應

如何在我的 controller 端點中獲取該信息?

使用 Flask 的request上下文。

例如,要獲取 HTTP_CLIENT_IP,請使用:

from flask import request

http_client_ip = request.remote_addr

您可以在此處閱讀有關request的更多信息。

根據請求 header 參數以及connexion 如何不將它們轉發到自定義控制器,附加兩個相關鏈接解決了相同的問題。 我最終通過手動訪問它們

access_token = connexion.request.headers['access_token']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM