2012-01-25 2 views
14

저는 피라미드 프레임 워크를 사용하고 있으며 요청이 시작된 IP 주소에 액세스하려고합니다. 나는 그것이 어딘가에 요청 객체 (모든 뷰 함수에 전달됨)에 있다고 가정하지만, 그것이 어디에 있는지를 알려주는 문서를 찾을 수 없다.피라미드로 요청 IP 주소 받기

+0

webob으로 편안하게 느껴질 가치가 있습니다. http://docs.webob.org/ko/latest/index.html –

답변

22

request.remote_addr입니다.

pyramid.request 설명서에서 확인할 수 있습니다.

+0

고마워. 나는 설명서에서 그것을 보았지만 "remote_addr"은 "IP 주소"를 의미한다는 것을 알지 못했습니다. 왜 그들은 단지 "IP 주소"라고하지 않습니까? –

+4

"IP 주소"가 모호하기 때문에 서버의 주소, 클라이언트의 주소 또는 다른 것이 있습니까? "remote_addr"은 원격 측, 즉 클라이언트의 주소이다. –

4

또는 당신은 request.environ['REMOTE_ADDR']

7

당신은 사용할 수 있습니다 사용할 수 있습니다 request.client_addr를.

+1

"사용자 에이전트는 일반 HTTP 헤더이므로 다른 사용자의 IP 또는 임의의 문자열을 HTTP_X_FORWARDED_FOR에 넣을 수 있습니다. 전달 프록시는 또한 잘못된 값 (개인 IP 주소 등)을 제공 할 수 있습니다. HTTP_X_FORWARDED_FOR에 올바른 값이 있는지 확실하지 않으면 유효한 데이터를 제공하는이 메서드는 신뢰할 수있는 프록시 뒤에 WSGI 서버가 있어야합니다. " 올바른 HTTP_X_FORWARDED_FOR를 설정하는 신뢰할 수있는 프록시를 사용하고 있지 않은 경우 올바르게 이해한다면 'remote_addr'을 사용해야합니다. –

+0

@ YannDinendal : 네, 맞습니다. 미안하지만이 점을 분명히하지 않았다. –