ในบทความนี้ เราจะมาดูวิธีรับที่อยู่ IP จากที่ที่เราได้รับคำขอ POST บางครั้งการตรวจสอบพารามิเตอร์ความปลอดภัยเป็นสิ่งสำคัญในบางครั้ง บางครั้งคุณอาจต้องแบน IP บางตัวหรือคุณอาจต้องตรวจสอบว่ามีใครส่งคำขอมากเกินไปจาก IP เดียวหรือไม่ มาดูกันว่าจะทำได้อย่างง่ายดายด้วยแพ็คเกจของบุคคลที่สามได้อย่างไร
ตัวอย่าง
สร้างโปรเจ็กต์ Django และแอพ ตั้งค่า url และทำสิ่งพื้นฐานบางอย่าง เช่น เพิ่มแอปใน INSTALLED_APPS
เราจะไม่ใช้แบบฟอร์มหรือแบบจำลองของ Django
ขั้นแรก ติดตั้ง django-ipware แพ็คเกจ −
pip ติดตั้ง django-ipware
คุณไม่จำเป็นต้องมีการกำหนดค่าใดๆ สำหรับสิ่งนี้
ตอนนี้ ไปที่ เทมเพลต → home.html และเพิ่มต่อไปนี้ −
tut
ที่นี่ เราเพียงแค่สร้างส่วนหน้าสำหรับแบบฟอร์มของเรา ซึ่งจะใช้สำหรับตรวจสอบ IP
ใน urls.py ของแอป −
จากเส้นทางการนำเข้า django.urls, includefrom นำเข้า viewsurlpatterns =[ เส้นทาง ('',views.home,name='home'),]
เราแสดงความเห็นที่นี่
ใน views.py −
from django.shortcuts import renderfrom ipware import get_client_ipdef home(request):if request.method=="POST":# We get ip here client_ip, is_routable =get_client_ip(request) # Client IP is IP addressprint(client_ip, is_routable) ) return render(request,'home.html')
ในคำขอ POST เราใช้ get_client_ip() เพื่อดูว่าคำขอมาจาก IP ใด จะส่งกลับค่าสองค่า
ผลลัพธ์
โดยคำนึงถึงความจริงที่ว่าเรากำลังใช้ localhost ผลลัพธ์ของคุณจะเป็น -
[23/ส.ค./2021 13:34:55] "GET / HTTP/1.1" 200 9999127.0.0.1 เท็จ[23/ส.ค./2021 13:34:58] "POST / HTTP/1.1" 200 9999ก่อน>