Wenn eine Verbindung hergestellt wird, wird das BuildProtocol einer Factory aufgerufen, um eine neue Protokollinstanz für diese Verbindung zu erstellen. buildProtocol wird die Adresse des Peers übergeben, der die Verbindung hergestellt hat, und buildProtocol kann None zurückgeben, damit die Verbindung sofort geschlossen wird.
So zum Beispiel, können Sie eine Fabrik wie folgt schreiben können:
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
Und nur lokale Verbindungen gehandhabt wird (aber alle Verbindungen zunächst noch akzeptiert werden, da man sie der Peer lernen akzeptieren müssen, was die Adresse ist).
Sie können dies auf die Factory anwenden, die Sie zum Bereitstellen von XML-RPC-Ressourcen verwenden. Unterordnen Sie diese Factory einfach und fügen Sie eine Logik wie diese hinzu (oder Sie können einen Wrapper anstelle einer Unterklasse erstellen).
iptables oder eine andere Plattform Firewall ist auch eine gute Idee für einige Fälle. Bei diesem Ansatz muss Ihr Prozess den Verbindungsversuch nicht einmal sehen.
+1 in der Tat, das ist der beste Ort, um den Scheck zu beantragen. Vielen Dank. – nosklo