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

 更新时间:2023年01月03日 11:17:35   作者:彳亍261  
这篇文章主要介绍了Python的Flask项目中获取请求用户IP地址 addr问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 用 Python 写的文档批量翻译工具效果竟然超出想象

    用 Python 写的文档批量翻译工具效果竟然超出想象

    这篇文章主要介绍了用 Python 写的文档批量翻译工具,效果竟然超越付费软件,这个非常适合python办公自动化脚本,非常不错,实现方法也很简单,需要的朋友可以参考下
    2021-05-05
  • python中的随机数 Random介绍

    python中的随机数 Random介绍

    这篇文章主要介绍了python中的随机数 Random,Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等,即用来生成随机数,下文更多相关资料需要的小伙伴可以参考一下
    2022-04-04
  • python FastApi实现数据表迁移流程详解

    python FastApi实现数据表迁移流程详解

    今天我们来聊一聊在FastApi里面,数据迁移工作,FastAPI是一个现代的,快速(高性能)python web框架。本文将利用fastapi实现数据表迁移功能,文中的示例代码讲解详细,需要的可以参考一下
    2022-08-08
  • 详解在SpringBoot如何优雅的使用多线程

    详解在SpringBoot如何优雅的使用多线程

    这篇文章主要带大家快速了解一下@Async注解的用法,包括异步方法无返回值、有返回值,最后总结了@Async注解失效的几个坑,感兴趣的小伙伴可以了解一下
    2023-02-02
  • 查看端口并杀进程python脚本代码

    查看端口并杀进程python脚本代码

    今天小编就为大家分享一篇查看端口并杀进程python脚本代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 一文教会你利用Python程序读取Excel创建折线图

    一文教会你利用Python程序读取Excel创建折线图

    不同类型的图表有不同的功能,柱形图主要用于对比数据,折线图主要用于展示数据变化的趋势,散点图主要用于判断数据的相关性,下面这篇文章主要给大家介绍了关于如何通过一文教你利用Python程序读取Excel创建折线图的相关资料,需要的朋友可以参考下
    2022-11-11
  • python中Flask框架简单入门实例

    python中Flask框架简单入门实例

    这篇文章主要介绍了python中Flask框架简单入门实例,以一个hello程序简单分析了Flask框架的使用技巧,需要的朋友可以参考下
    2015-03-03
  • python爬虫之selenium库的安装及使用教程

    python爬虫之selenium库的安装及使用教程

    今天带大家来学习怎么安装使用selenium库,文中有非常详细的图文介绍,对正在学习python爬虫的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • python使用pyqt写带界面工具的示例代码

    python使用pyqt写带界面工具的示例代码

    本篇文章主要介绍了python使用pyqt写带界面工具的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 不知道这5种下划线的含义,你就不算真的会Python!

    不知道这5种下划线的含义,你就不算真的会Python!

    Python是一种高级程序语言,其核心设计哲学是代码可读性和语法,能够让程序员用很少的代码来表达自己的想法。这篇文章主要介绍了不知道这5种下划线的含义,你就不算真的会Python!对此标题感兴趣的朋友一起阅读本文吧
    2018-10-10

最新评论