इस लेख में, हम देखेंगे कि POST रिक्वेस्ट कहां से आ रही है, उसका IP एड्रेस कैसे प्राप्त करें। सुरक्षा पैरामीटर्स पर नजर रखना कभी-कभी महत्वपूर्ण होता है। कभी-कभी आपको कुछ IPs को बैन करने की आवश्यकता हो सकती है या आपको जांचना पड़ सकता है कि क्या कोई सिंगल IP से बहुत अधिक रिक्वेस्ट भेज रहा है। आइए देखते हैं कि इसे थर्ड-पार्टी पैकेज के साथ आसानी से कैसे किया जा सकता है।
उदाहरण
एक Django प्रोजेक्ट और एक ऐप बनाएं। urls सेट करें और INSTALLED_APPS में ऐप जोड़ने जैसे कुछ बुनियादी काम करें।
हम किसी Django फॉर्म या मॉडल का उपयोग नहीं करेंगे।
सबसे पहले, django-ipware पैकेज इंस्टॉल करें:
pip install django-ipware
इसके लिए किसी कॉन्फ़िगरेशन की आवश्यकता नहीं है।
अब, Templates → home.html पर जाएं और निम्नलिखित जोड़ें:
<!DOCTYPE html>
<html>
<head>
<title>tut</title>
</head>
<body>
<form method="post" action='/' enctype="multipart/form-data">
<input type="text" id="text"/>
<input type="submit" value="submit"/>
</form>
</body>
</html>
यहां, हमने बस अपने फॉर्म के लिए एक फ्रंटएंड बनाया, जिसका उपयोग IP जांचने के लिए किया जाएगा।
ऐप के urls.py में:
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
यहां, हमने अपना व्यू रेंडर किया।
views.py में:
from django.shortcuts import render
from ipware import get_client_ip
def home(request):
if request.method == "POST":
# हम यहां IP प्राप्त करते हैं
client_ip, is_routable = get_client_ip(request)
# Client IP है IP एड्रेस
print(client_ip, is_routable)
return render(request, 'home.html')
यहां, POST रिक्वेस्ट में, हम रिक्वेस्ट किस IP से आ रही है यह देखने के लिए get_client_ip() का उपयोग करते हैं, यह दो मान लौटाता है।
आउटपुट
इस तथ्य को ध्यान में रखते हुए कि हम लोकलहोस्ट का उपयोग कर रहे हैं, आपका आउटपुट होगा:
[23/Aug/2021 13:34:55] "GET / HTTP/1.1" 200 9999 127.0.0.1 False [23/Aug/2021 13:34:58] "POST / HTTP/1.1" 200 9999