Computer >> Máy Tính >  >> Lập trình >> Python

Nhận địa chỉ IP yêu cầu POST trong Django

Trong bài viết này, chúng ta sẽ xem cách lấy địa chỉ IP từ nơi chúng ta nhận được yêu cầu POST. Đôi khi điều quan trọng là phải kiểm tra các thông số bảo mật. Đôi khi bạn có thể cần phải cấm một số IP hoặc bạn có thể cần kiểm tra xem có ai đang gửi quá nhiều yêu cầu từ một IP duy nhất hay không. Hãy xem cách nó có thể được thực hiện dễ dàng với gói của bên thứ ba.

Ví dụ

Tạo một dự án Django và một ứng dụng. Thiết lập url và thực hiện một số việc cơ bản như thêm ứng dụng trong INSTALLED_APPS.

Chúng tôi sẽ không sử dụng bất kỳ biểu mẫu hoặc mô hình Django nào.

Trước tiên, hãy cài đặt django-ipware gói -

 pip cài đặt django-ipware 

Bạn không cần bất kỳ cấu hình nào cho việc này.

Bây giờ, đi tới Mẫu → home.html và thêm phần sau -

     tut    

Ở đây, chúng tôi chỉ tạo một giao diện người dùng cho biểu mẫu của mình, giao diện này sẽ được sử dụng để kiểm tra IP.

Trong urls.py của ứng dụng -

 từ đường dẫn nhập django.urls, includeefrom. import viewsurlpatterns =[path ('', views.home, name ='home'),] 

Tại đây, chúng tôi đã hiển thị chế độ xem của mình.

Trong 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 ) trả về kết xuất (yêu cầu, 'home.html') 

Ở đây, trong yêu cầu ĐĂNG, chúng tôi sử dụng get_client_ip () để biết yêu cầu đến từ IP nào, nó trả về hai giá trị.

Đầu ra

Hãy nhớ rằng chúng tôi đang sử dụng localhost, đầu ra của bạn sẽ -

 [23/8/2021 13:34:55] "GET / HTTP / 1.1" 200 9999127.0.0.1 Sai [23/8/2021 13:34:58] "ĐĂNG / HTTP / 1.1" 200 9999