Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Django에서 POST 요청 IP 주소 얻기

<시간/>

이 기사에서는 POST 요청을 받은 IP 주소를 얻는 방법에 대해 알아봅니다. 때때로 보안 매개변수를 확인하는 것이 중요합니다. 때로는 일부 IP를 금지해야 할 수도 있고 누군가가 단일 IP에서 너무 많은 요청을 보내는지 확인해야 할 수도 있습니다. 타사 패키지를 사용하여 쉽게 수행할 수 있는 방법을 살펴보겠습니다.

Django 프로젝트와 앱을 만듭니다. URL 설정 INSTALLED_APPS에 앱 추가와 같은 몇 가지 기본적인 작업을 수행합니다.

Django 양식이나 모델은 사용하지 않습니다.

먼저 django-ipware를 설치합니다. 패키지 -

pip install django-ipware

이에 대한 구성이 필요하지 않습니다.

이제 템플릿 → home.html으로 이동합니다. 다음을 추가하십시오 -

  tut   
<입력 유형="텍스트" id="텍스트"/> <입력 유형="제출" 값="제출"/>

여기서는 IP를 확인하는 데 사용할 양식에 대한 프런트엔드를 간단하게 만들었습니다.

앱의 url.py에서 -

from django.urls 가져오기 경로, includefrom . import viewsurlpatterns =[ 경로('',views.home,name='홈'),]

여기에서 우리는 우리의 관점을 표현했습니다.

views.py에서 -

from django.shortcuts import renderfrom ipware import get_client_ipdef home(request):if request.method=="POST":# 우리는 여기서 ip를 얻습니다 client_ip, is_routable =get_client_ip(request) # 클라이언트 IP는 IP 주소입니다print(client_ip, is_routable ) return render(request,'home.html')

여기에서 POST 요청에서 get_client_ip()를 사용합니다. 요청이 들어오는 IP를 확인하기 위해 두 개의 값을 반환합니다.

출력

우리가 localhost를 사용하고 있다는 사실을 염두에 두고, 당신의 출력은 다음과 같을 것입니다 -

[23/Aug/2021 13:34:55] "GET / HTTP/1.1" 200 9999127.0.0.1 False[23/Aug/2021 13:34:58] "POST / HTTP/1.1" 200 9999