어떻게 파이썬에서 원격 IP 주소를 얻을 수 있습니까?파이썬에서 원격 IP 주소 받기
Google 검색을 시도했지만 유용한 결과를 찾을 수 없습니다. os.environ['REMOTE_ADDR']
이 제공하는 것 KeyError: 'REMOTE_ADDR'
어떻게 파이썬에서 원격 IP 주소를 얻을 수 있습니까?파이썬에서 원격 IP 주소 받기
Google 검색을 시도했지만 유용한 결과를 찾을 수 없습니다. os.environ['REMOTE_ADDR']
이 제공하는 것 KeyError: 'REMOTE_ADDR'
당신은 운영 체제의 os
환경이 아닌 request
년대에 접근하고 있습니다.
WSGI이 호출은 두 개의 변수, environ
및 start_response
를 전달해야하고, 그 environ
변수는 당신이 찾고있는 변수를해야합니다.
CGI
앱을 실행하는 경우 해당 변수는 실제 os.environ
에만 표시됩니다.
사용중인 웹 프레임 워크에 따라 액세스 권한이 없을 수 있습니다. request
개체가 전달 된 경우 request.META
또는 비슷한 것으로 끝납니다.
프레임 워크를 사용하지 않는 경우 the environ
dict that is passed to your wsgi callable이됩니다.
으로는 REMOTE_ADDR
은 사양에 따라 자신을 수이없는 않지만, 아파치의 mod_wsgi
를 사용하는 경우, 그것은이 있어야, 다른 답변에서 언급했다.
언급 할 가치가있는 'REMOTE_ADDR'은 전달자의 주소 일 수 있습니다. 설치에는 웹 응용 프로그램 방화벽, nginx와 같은 요청을 처리하는 프록시 또는 기타 이와 같은 설정이 있습니다. 이 경우,'HTTP_X_FORWARDED_FOR'의 존재를 검사 할 가치가 있습니다. –
TCP 소켓에 액세스 할 수있는 경우 socket.getpeername()
을 사용하여 원격 주소를 가져올 수 있습니다. Docs are here.
@AshwiniChaudhary : 그건 잘못되었습니다. 그는 자신의 웹 앱에 연결하는 클라이언트의 IP 주소가 필요합니다. 앱이 실행되는 서버가 아닙니다. – Cairnarvon
스택 모양은 어떻습니까? –
@ThomasOrozco Debian, Apache 2.2 및 Python 2.7 –