flask获取ip地址各种方法

一:使用request.remote_addr

python 复制代码
from flask import Flask,request

app=Flask(__name__)
@app.route("/")
def getIp():
    ip_address = request.remote_addr
    return f"{ip_address}"

if __name__=="__main__":
    app.run()

简单直观,但安全性不足,适合开发环境

二:使用X-Forwarded-For结合request.remote_addr

python 复制代码
from flask import Flask,request
app=Flask(__name__)
@app.route("/")
def getIp():
    ip_address=request.headers.get("X-Forwarded-For",request.remote_addr)
    return f"{ip_address}"

app.run()

代理环境下能获取真实ip,更可靠

三;使用proxyFix中间件配置可信代理(推荐)

python 复制代码
from flask import Flask,request
from werkzeug.middleware.proxy_fix import ProxyFix

app=Flask(__name__)
if hasattr(app.wsgi_app, 'trusted_proxies'):
    app.wsgi_app.trusted_proxies = ['192.168.0.100']#改成自己可信的代理地址
app.wsgi_app=ProxyFix(app.wsgi_app,x_for=1,x_proto=1,x_host=1,x_port=1)#配置代理

@app.route("/")
def getIp():
    ip_address=request.remote_addr
    return f"{ip_address}"

app.run()

这里使用Werkzeug的ProxyFix中间件提取来自X-Forwarded-For真实ip,适合生产环境

相关推荐
艾莉丝努力练剑6 分钟前
【Qt】界面优化:绘图API
linux·运维·开发语言·网络·qt·tcp/ip·udp
天佑木枫16 分钟前
第5天:循环 —— 让程序重复执行
python
聆风吟º16 分钟前
【Python编程日志】Python基础数据类型完整梳理
开发语言·python·数据类型
盼小辉丶19 分钟前
OpenCV-Python实战(28)——OpenCV计算摄影从HDR图像融合到全景拼接
python·opencv·计算机视觉
shchojj31 分钟前
ChatGPT Prompt Engineering for Developers - Expanding
开发语言·python·prompt
我是一颗柠檬31 分钟前
【计算机网络全面教学】传输层TCP与UDP,三次握手到拥塞控制彻底搞懂Day4(2026年)
tcp/ip·计算机网络·udp
俊俊谢36 分钟前
【python】FastAPI 实时推送:从 SSE 到 WebSocket
python·websocket·fastapi
stephon_1002 小时前
Agent 接入 MCP 后上下文爆炸、工具选串?一种“按需激活“的工具加载方案(含实现)
人工智能·python·ai
TickDB2 小时前
统一行情 API 查 A 股、港股、美股和数字货币:code=0 不代表 symbol 一个没少
人工智能·python·websocket·mcp·行情数据 api
大貔貅喝啤酒9 小时前
Python Requests库教程
自动化测试·python·requests库