2013-01-09 3 views
1

내 응용 프로그램은 파이썬과 bottle 프레임 워크로 개발되었습니다.Amazon Elastic Beanstalk - 방문자 IP 주소 얻기 (파이썬)

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

그것은 AWS 콩 줄기 인스턴스에 배포 후, 그러나, 내 로컬 컴퓨터에서 잘 작동, 나는 내가 부하 분산 IP를 얻고있다 생각 : 나는 페이지로 방문자의 IP 주소를 얻기 위해 다음과 같은 코드를 사용하고 user_ip가 10.48.95.234와 같은 것을 읽으면서.

내 생각이 맞습니까? 그렇다면 실제 방문자의 IP 주소를 얻을 수있는 방법이 있습니까?

답변

6

ELB의 값인 REMOTE_ADDR 값이 맞습니다.

일반적으로 요청에서 X-Forwarded-For 헤더를 찾아야합니다. ELB는이 헤더를 삽입하여 최종 클라이언트 IP 주소를 알려줍니다.

+0

당신은 절대적으로 정확, 감사합니다! – petr

3

이 경우에서 도움이 병 별 버전도있다 :이 자동적으로 처리를 수행하고 사용자의 주소를 가져옵니다

user_ip = bottle.request.remote_addr 

가. 자세한 내용은 documentation 또는 source code을 참조하십시오.

+0

또한 X-Forwarded-For를 확인합니까? –

+0

그것은 ELB에서 저에게 효과적입니다. 위의 포스터의 진술이 정확하다면, ti도 그렇게합니다. 정반대의 경험이 있습니까? – petr

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')