📜  获取客户端 IP 烧瓶 - Python (1)

📅  最后修改于: 2023-12-03 15:11:51.645000             🧑  作者: Mango

获取客户端IP烧瓶 - Python

在Web应用程序中,获取客户端的IP地址是一个常见的需求,这里提供一种使用Python实现的方法。

获取客户端IP的方法

在Python中,可以通过Werkzeug库中的Request.remote_addr属性来获取客户端的IP地址。

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
    ip_address = request.remote_addr
    return f"Your IP address is: {ip_address}"

上述代码中,我们使用Flask框架创建了一个应用程序,并在根路径下定义了一个路由函数index()。该函数从request对象的remote_addr属性中获取客户端IP地址,并将其显示在浏览器中。

针对代理服务器的处理

如果你的Web应用程序运行在代理服务器之后,那么客户端的IP地址可能会被代理服务器篡改。此时,需要通过X-Forwarded-For请求头来获取客户端真实的IP地址。可以通过以下方式来实现:

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
    ip_address = request.headers.get('X-Forwarded-For', request.remote_addr)
    return f"Your IP address is: {ip_address}"

在上述代码中,我们仍然使用request对象来获取客户端IP地址。这里使用了headers.get()方法来获取X-Forwarded-For请求头,并且当该请求头不存在时,返回remote_addr属性的值作为IP地址。

总结

通过本文的介绍,我们了解了如何使用Python中的Request.remote_addr属性来获取客户端IP地址。并且,在代理服务器的情况下,我们也给出了一种获取客户端真实IP地址的方法。这里仅仅是简单的介绍,读者可以根据自己的需求进一步扩展。