1

我的应用程序是用 python 和瓶子框架开发的。我正在使用以下代码片段来获取页面访问者的 IP 地址:

user_ip = bottle.request.environ['REMOTE_ADDR']

它在我的本地机器上运行良好,但是,在部署到 AWS Beanstalk 实例后,我想我得到了负载均衡器 IP,因为 user_ip 读取的内容类似于 10.48.95.234。

我的想法正确吗?如果是这样,有没有办法获得真正的访问者的IP地址?

4

3 回答 3

6

你是正确的,REMOTE_ADDR你得到的价值是 ELB。

您通常需要X-Forwarded-For在请求中查找标头。ELB 将插入此标头以让您知道最终客户端 IP 地址。

于 2013-01-09T16:54:08.930 回答
3

在这种情况下,还有一个特定于瓶子的版本可以提供帮助:

user_ip = bottle.request.remote_addr

这会自动进行处理并获取用户的地址。有关详细信息,请参阅文档源代码

于 2013-01-09T17:17:11.940 回答
0

这适用于我的 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')
于 2016-07-19T20:22:26.457 回答