当前位置:  开发笔记 > 编程语言 > 正文

Python Twisted:限制IP地址访问

如何解决《PythonTwisted:限制IP地址访问》经验,为你挑选了1个好方法。

什么是限制IP地址访问我的XMLRPC服务器的最佳方法?我看到web/twcgi.py中的类CGIScript有一个访问请求的render方法......但我不知道如何在我的服务器中访问此请求.我看到一个例子,有人修补twcgi.py来设置环境变量,然后在服务器中访问环境变量...但我认为必须有一个更好的解决方案.

谢谢.



1> Jean-Paul Ca..:

建立连接后,将调用工厂的buildProtocol来创建新的协议实例来处理该连接.buildProtocol传递建立连接的对等体的地址,buildProtocol可以返回None以立即关闭连接.

因此,例如,您可以编写这样的工厂:

from twisted.internet.protocol import ServerFactory

class LocalOnlyFactory(ServerFactory):
    def buildProtocol(self, addr):
        if addr.host == "127.0.0.1":
            return ServerFactory.buildProtocol(self, addr)
        return None

并且只处理本地连接(但是最初仍然会接受所有连接,因为您必须接受它们以了解对等地址是什么).

您可以将其应用于您用于提供XML-RPC资源的工厂.只需将该工厂子类化并添加这样的逻辑(或者您可以执行包装而不是子类).

不过,在某些情况下,iptables或其他平台防火墙也是一个好主意.通过这种方法,您的流程甚至不必看到连接尝试.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有