从套接字中获取服务器名称

Get the server name from socket

我尝试编辑可用于嗅探 SSL 流量的 mallory 代理。但是,使用连接到服务器的服务器存在问题,例如CloudFlare因为拿不到真正的证书,只能从前面的CloudFlare服务器上拿到证书。

因此,我想使用 SSLContext.wrap_socket() 中的 server_hostname 选项。但是为此,我需要从 Python 套接字对象中获取目标服务器的名称。然而,我知道唯一可以检索它的函数是 getpeername() 但这 returns 只是目的地的 ip。有人也知道从套接字获取服务器名称的方法吗?

dhke 在评论中建议的解决方案,调用 set_servername_callback(),确实是我搜索的解决方案,正如您所见 here。然而,在 mallory 中使用它是行不通的,但这是另一个话题。