Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

รับ POST ร้องขอที่อยู่ IP ใน Django


ในบทความนี้ เราจะมาดูวิธีรับที่อยู่ 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