2017-10-03 3 views
1

Ich habe eine Python/Flask-App auf dem AWS Elastic Beanstalk.Python auf AWS Remote-IP-Adresse abrufen

Ich muss die Remote-IP-Adresse des Benutzers erhalten, wie das Python-Skript ausgelöst wird, aber die Verwendung von request.environ ['REMOTE_ADDR'] im Python-Skript funktioniert nicht. Es gibt die private IP-Adresse meines Servers zurück, anstatt die IP-Adresse des Benutzers.

http://xxxxxx-env.eu-west-2.elasticbeanstalk.com/xxx

xxx löst meinen Python App enthält:

if ('REMOTE_ADDR' in request.headers): 
    print (request.environ['REMOTE_ADDR']) 

Aber das Ergebnis ist: 172.31.xx.xxx

Wenn meine tatsächliche IP ist:

83,164 .xx.xxx

Kann beliebig sein Körper zeigen mir in die richtige Richtung, wie die Remote IP des Benutzers zu bekommen?

Antwort

1

Ich habe es geschafft, dies auszuarbeiten. Elastic Beanstalk übergibt automatisch die Remote IP-Adresse und kann wie folgt abgerufen werden:

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