iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python的Flask项目中获取请求用户IP地址addr问题
  • 268
分享到

Python的Flask项目中获取请求用户IP地址addr问题

PythonFlask项目Flask获取请求用户IP地址Flaskaddr问题 2023-01-03 12:01:35 268人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录python flask项目中获取请求用户IP地址 addr服务器直接部署FlaskDocker中Nginx代理Gunicorn中启动Flask查到IP可以做点什么Python

Python Flask项目中获取请求用户IP地址 addr

服务器直接部署Flask

import logging
from flask import Flask, render_template, request

# Initialize the Flask application
app = Flask(__name__)

# Default route, print user's IP
@app.route('/')
def index():
     ip = request.remote_addr
     logging.debug(ip)
     return render_template('index.html', user_ip=ip)


if __name__ == '__main__':
     app.run(host="0.0.0.0", port=80)

Docker中Nginx代理Gunicorn中启动Flask

这种情况下, 按照上面的代码只能获取到本服务器地址。需要使用werkzeug.middleware.proxy_fix

import logging
from flask import Flask, render_template, request
from werkzeug.middleware.proxy_fix import ProxyFix

# Initialize the Flask application
app = Flask(__name__)
app.wsgi_app = ProxyFix(app.wsgi_app, num_proxies=1)


# Default route, print user's IP
@app.route('/')
def index():
     ip = request.remote_addr
     logging.debug(ip)
     return render_template('index.html', user_ip=ip)

查到IP可以做点什么

Flask获取用户的ip,查询用户的登录次数,并且封ip

Python flask (request 请求)

注意参数是采用 request.values.get 获取

#!/usr/bin/python
# -*- coding: UTF-8 -*-

from flask import Flask, JSONify, abort, request

app = Flask(__name__)

result = [
    { 
        "code":"001",
        "desc":"success",
        "data":1
    }
]

@app.route('/')
def hello_world():
    return 'Hello World!'

@app.route('/send/imgaddress', methods=['POST'])
def create_task():
    getdata = request.data.decode('utf-8')
    userImg = ''
    userdebugImg = ''
    userImg = request.values.get('user')
    userdebugImg = request.values.get('userdebug')
    print('userImg:', userImg)
    print('userdebugImg:', userdebugImg)
    result[0]["code"] = '001'
    return jsonify({'result': result})

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

测试

Http://127.0.0.1:5000/send/imgaddress?user=172.28.6.1&userdebug=172.28.6.0

同局域网跨电脑访问

可以注意到上面使用的 ip 是 127.0.0.1,那么使用本机电脑ip如何设置呢?

修改如下:

if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=False)

允许跨组访问

app = Flask(__name__)

改为:

from flask_cors import CORS
app = Flask(__name__)
CORS(app, supports_credentials=True)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Python的Flask项目中获取请求用户IP地址addr问题

本文链接: https://www.lsjlt.com/news/176484.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作