我正在实施一项服务——用 Python 编写,使用 Twisted 框架,在 Debian GNU/Linux 上运行——检查 SIP 服务器的可用性。为此,我使用 OPTIONS 方法(一种 SIP 协议功能),因为这似乎是一种司空见惯的做法。为了构造正确且符合 RFC 的标头,我需要知道要建立的连接的源 IP 地址和源端口。[如何] 使用 Twisted 可以做到这一点?
这就是我尝试过的:我将protocol.DatagramProtocol子类化并在其中startProtocol(self)
使用self.transport.getHost().host
and self.transport.getHost().port
。后者确实是要使用的端口,而前者只产生 0.0.0.0。
我想此时 Twisted [还没有?] 知道将使用哪个接口以及哪个源 IP 地址。Twisted 是否提供了可以帮助我解决此问题的工具,还是我需要以不同的方式与操作系统(路由)交互?还是我使用self.transport.getHost().host
不当?