gpt4 book ai didi

python - Twisted:出站连接的源IP地址

转载 作者:IT王子 更新时间:2023-10-29 01:04:22 26 4
gpt4 key购买 nike

我正在实现一项服务——使用 Twisted 框架用 Python 编写,在 Debian GNU/Linux 上运行——检查 SIP 服务器的可用性。为此,我使用 OPTIONS 方法(一种 SIP 协议(protocol)功能),因为这似乎是一种常见的做法。为了构建正确且符合 RFC 的 header ,我需要知道将要建立的连接的源 IP 地址和源端口。 [如何]用 Twisted 做到这一点?

这是我尝试过的:我子类 protocol.DatagramProtocolstartProtocol(self) 中,我使用了 self.transport.getHost().hostself.transport.getHost().port。后者确实是将要使用的端口,而前者仅产生 0.0.0.0。

我想此时 Twisted [还?] 不知道将使用哪个接口(interface)以及哪个源 IP 地址。 Twisted 是否提供了可以帮助我解决这个问题的工具,或者我是否需要以不同的方式与操作系统(路由)交互?还是我只是错误地使用了 self.transport.getHost().host

最佳答案

为了完整起见,我回答我自己的问题:

在尝试确定主机的源 IP 地址之前,请确保在传输上使用 connect()。以下摘录显示了协议(protocol)实现的相关部分:

class FooBarProtocol(protocol.DatagramProtocol):
def startProtocol(self):
self.transport.getHost().host # => 0.0.0.0
self.transport.connect(self.dstHost, self.dstPort)
self.transport.getHost().host # => 192.168.1.102

关于python - Twisted:出站连接的源IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1622454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com