獲取 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

更新於: 25-Aug-2021

941 瀏覽

事業起航

完成課程,獲得認證

開始學習
廣告
© . All rights reserved.