我的应用程序是用 python 和瓶子框架开发的。我正在使用以下代码片段来获取页面访问者的 IP 地址:
user_ip = bottle.request.environ['REMOTE_ADDR']
它在我的本地机器上运行良好,但是,在部署到 AWS Beanstalk 实例后,我想我得到了负载均衡器 IP,因为 user_ip 读取的内容类似于 10.48.95.234。
我的想法正确吗?如果是这样,有没有办法获得真正的访问者的IP地址?
我的应用程序是用 python 和瓶子框架开发的。我正在使用以下代码片段来获取页面访问者的 IP 地址:
user_ip = bottle.request.environ['REMOTE_ADDR']
它在我的本地机器上运行良好,但是,在部署到 AWS Beanstalk 实例后,我想我得到了负载均衡器 IP,因为 user_ip 读取的内容类似于 10.48.95.234。
我的想法正确吗?如果是这样,有没有办法获得真正的访问者的IP地址?
你是正确的,REMOTE_ADDR
你得到的价值是 ELB。
您通常需要X-Forwarded-For
在请求中查找标头。ELB 将插入此标头以让您知道最终客户端 IP 地址。
这适用于我的 ELB:
from bottle import route, run, request
@route('/hello')
def hello():
return "Hello, {}".format(request.remote_route)
run(host="0.0.0.0", port=8000, server='twisted')