我在AWS Elastic Beanstalk上运行了一个Python / Flask应用程序。
我需要在触发Python脚本时获取用户的远程IP地址,但在python脚本中使用request.environ [' REMOTE_ADDR']是不行的。它返回的是我服务器的私有IP地址,而不是用户的IP地址。
http://xxxxxx-env.eu-west-2.elasticbeanstalk.com/xxx
xxx解析为我的Python应用程序包含:
if ('REMOTE_ADDR' in request.headers):
print (request.environ['REMOTE_ADDR'])
但结果是: 172.31.xx.xxx
当我的实际IP是:
83.164.xx.xxx
有人能指出我如何获取用户的远程IP吗?
答案 0 :(得分:2)
我设法解决了这个问题。 Elastic Beanstalk自动传递远程IP地址,可以按如下方式检索:
if (request.access_route):
#return remote ip
remoteIP = request.access_route[0]
#return full ip list (if more than one passed through)
remoteIPRaw = request.access_route