限制IP訪問

2021-08-22 02:21:38 字數 1122 閱讀 9087

本文以python為基礎

問題描述

後台伺服器如何限制某些特定ip的訪問?

問題分析

如果對ip進行限制,那麼第一步就必須得到使用者的ip,才能進行限制,第二部才是限制

問題解決

得到使用者ip

首先,python提供了獲取ip的**語句

ip =request.remote_addr
但是通過這行**,我們卻得到的不是使用者的真是ip,那麼是為什麼呢?不急,我們下來進行分析。

一般來說,應用程式都部署在nginx或者其他**伺服器上,獲取更多層,利用nginx對使用者的請求進行分發,而request.remote_addr得到的是上乙個節點的ip,因此在後台程式中,我們也得到了nginx伺服器的ip,因此並不是客戶端的真實ip。

那麼如何得到使用者的真實ip呢?

python**如下:

return client_ip註解:**中的http_x_forwarded_for記錄了客戶ip到達後台的全部ip過程,每經過乙個伺服器節點,伺服器的ip都會加到這個頭的後面,這個ip的獲取是基於tcp,以『,』隔開,因此當達到應用時,如果將這些ip調出來,頭部的那個ip即是客戶端的真實ip。

當然,這個http_x_forwarded_for並不是呼叫就可以的,還必須在nginx上進行配置,否則得到的就是空

以下依照uwsgi的nginx為例

server 

}

限制ip

其實在獲取realip後,限制就較簡單了

限制ip的方法參考:

限制ip訪問 dtcms限制部分IP訪問文章

是否存在於ip列表 public bool getip string ipa 是否存在於ip列表 protected bool getip 1 新建頻道 控制面板 站點管理 頻道管理 新增 以kaohetongbao為例 2 頻道url配置 列表頁kaohetongbao all表示式 1 kaoh...

oracle限制IP訪問

限制ip 訪問主要通過設定 sqlnet.ora實現 在sqlnet.ora 中新增 tcp.validnode checking yes 如果要設定限制 ip則必須啟動該行 tcp.invited nodes hostname ip address,hostname ip address,允許訪問...

apache 限制IP訪問

options all allowoverride none order deny,allow deny from all allow from 192.168.0.0 24 allow from 127.0.0.1 allow from 59.37.x.x 28 上面這一段的意思是對 var ww...