2015-04-01 154 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