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,适合生产环境

相关推荐
2301_775148153 分钟前
如何授权AWR报告生成_GRANT SELECT ANY DICTIONARY诊断权限
jvm·数据库·python
刀法如飞22 分钟前
一款Python语言Django框架DDD脚手架,开箱即用
python·架构·django
itzixiao1 小时前
L1-051 打折(5分)[java][python]
java·python·算法
小心我捶你啊1 小时前
VPS的主要用途,与其它方式的区别
服务器·网络协议·tcp/ip
HappyAcmen1 小时前
10.常见报错排查与基础调试
开发语言·python
山川而川-R1 小时前
Windows新系统_安装anaconda-2026-4.24
python
ID_180079054731 小时前
Python 实现京东商品详情 API 数据准确性校验(极简可直接用)
java·前端·python
码农的神经元2 小时前
配电网智能决策平台:从风险感知到自愈控制的 Python 实现
开发语言·python
zhaoshuzhaoshu2 小时前
主流 AI 编程助手工具特点与对比
人工智能·python
Daydream.V2 小时前
Python 多线程编程从入门到精通:基础 + 实战 + 避坑全攻略
python·线程·threading·线程教学