关于twisted 的UDP 多播的安全性,我有2 个问题。
class UDPProtocol(twisted.internet.protocol.DatagramProtocol):
def startProtocol(self):
self.transport.joinGroup('224.0.0.1')
def datagramReceived(self, data, (host, port)):
if host == '192.126.1.65':
print "UDPWebscriptProtocol: received %r from %s:%d" % (data, host, port)
这就是我听的方式:
reactor.listenMulticast(10222, UDPProtocol(), listenMultiple = True, interface = '224.0.0.1')
注意listenMulticast 中的接口规范。
- 在 listenMulticast 中指定接口与在协议中加入组有什么区别?
- 在协议中,我检查主机接口是否具有正确的 IP(在本例中,是具有 rfc 1918 地址的私有接口)。有人可以欺骗这个 ip 并广播到我的组吗?还是只能欺骗IP而不是接口?
一般来说,这段代码的安全性如何?