반응형
FastAPI, NGINX 사용 시 Client IP 확인
글. 수알치 오상문
먼저, 아래 게시물을 참고하자.
NginX에서 설정하는 내용을 살펴보면 된다.
https://wiki.tistory.com/entry/nginx-ingress-ip-config
아래 FastAPI에서 클라이언트 IP를 체크하는 코드이다.
check_user_ip 함수는 요청 request 정보에서 클라이언트 IP 정보가 있는지 확인하고 그 결과는 돌려준다.
참고로 ':=' 연산자를 이용하여 ip 변수에 값을 할당한 후에
그 결과 값을 if 조건문에 돌려줘서 값이 존재하는지 확인할 수 있다.
def check_user_ip(request):
'''접속자 IP 확인
Returns:
(str) 클라이언트 IP
'''
if ip := request.headers.get("X-Real-IP", ""):
pass
elif ip := request.headers.get("X-Forwarded-For", ""):
pass
elif ip := request.headers.get("Proxy-Client-IP", ""):
pass
elif ip := request.headers.get("WL-Proxy-Client-IP", ""):
pass
elif ip := request.headers.get("HTTP_CLIENT_IP", ""):
pass
elif ip := request.headers.get("HTTP_X_FORWARDED_FOR", ""):
pass
else:
ip = request.client.host
return ip
@router.get("/user-ip", status_code = 200)
def user_ip(request: Request):
'''접속자 IP 확인
'''
return {'data': check_user_ip(request)}
반응형
'FastAPI' 카테고리의 다른 글
FastAPI, 인증 API (Authentication APIs) (0) | 2023.11.10 |
---|---|
How to Use FastAPI: A Detailed Python Tutorial (1) | 2023.10.23 |
FastAPI, 현재 실행 프로세스 및 환경 정보 예제 (0) | 2023.08.18 |
FastAPI, 파일 반환하기 (0) | 2023.08.13 |
FastAPI, Redis를 이용한 데이터 공유 (0) | 2023.08.12 |