2015-04-01 155 views
1

我試過an application,我用一種方法來禁止那些向服務器發送超過5個空請求的人,但問題是每個人都被阻塞了,這是因爲每個人都被看作是一個唯一的IP。在OpenShift中獲取真正的客戶端IP?

In the code,我用這種方法得到了X-Real-IP,但是它在OpenShift上沒有任何工作,那該怎麼做呢?

這裏是我得到的IP:

x_real_ip = self.request.headers.get("X-Real-IP")    
remote_ip = self.request.remote_ip if not x_real_ip else x_real_ip 

更新:我得到'127.3.165.129', None)print(self.request.remote_ip, x_real_ip)

回答

2

時,你要尋找的「X-轉發目標爲」頭以獲取客戶的IP地址。您所看到的是用戶在結束應用程序/設備之前所經歷的反向代理的IP地址。

您可以參考本文中的開發人員中心,瞭解更多有關請求如何在OpenShift路由:https://developers.openshift.com/en/managing-port-binding-routing.html

+0

奏效!謝謝! – Abdelouahab 2015-04-01 18:00:25

+1

它也許值得在開發人員中心中查看本文:https://developers.openshift.com/en/managing-port-binding-routing.html – 2015-04-01 18:32:15

+0

它按照文檔說的那樣工作,將8080不起作用,我將它們改爲var:'ip = os.environ ['OPENSHIFT_PYTHON_IP'] port = int(os.environ ['OPENSHIFT_PYTHON_PORT'])' – Abdelouahab 2015-04-01 19:04:10