獲取 Django 中的 POST 請求 IP 地址
在本文中,我們將瞭解如何獲取傳送 POST 請求的 IP 地址。有時有必要檢查安全引數。有時您可能需要禁止某些 IP,或者可能需要檢查是否有人正在從單個 IP 傳送過多請求。讓我們看看如何透過第三方軟體包輕鬆實現此目的。
示例
建立 Django 專案和應用程式。設定URL並執行一些基本操作,例如在 INSTALLED_APPS 中新增應用程式。
我們將不使用任何 Django 表單或模型。
首先,安裝django-ipware軟體包 −
pip install django-ipware
您不需要為此進行任何配置。
現在,轉到模板 → 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": # We get ip here client_ip, is_routable = get_client_ip(request) # Client IP is IP address print(client_ip, is_routable) return render(request,'home.html')
在這裡,在 POST 請求中,我們使用get_client_ip()檢視請求來自哪個 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP