如何使用python找出http和ssl版本

时间:2016-07-28 07:08:49

标签: python ssl http2 spdy

在python中有一个很好的方法来检查一个网站/网址是否支持http2以及它支持哪些SSL版本。

我正在寻找的是通过使用命令

实现的
openssl s_client ­connect domain:443 ­nextprotoneg ''

此openssl命令的输出包含以下行:Protocols advertised by server: h2, spdy/3.1, http/1.1通过它我可以找出http2支持。

curl -v -o /dev/null --silent https://www.example.com

这一行 - >上述命令输出中的TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256可以告诉我使用的SSL版本。

我不想运行这些命令并解析输出,因为我觉得应该有更好的方法来实现它。

1 个答案:

答案 0 :(得分:0)

您可以使用Hyper lib。

from hyper import HTTPConnection

conn = HTTPConnection('google.com:443')
# If request made over http/1.1 then result will be None
if conn.request('HEAD', '/') is not None:
    # Return a string identifying the protocol version used by the current SSL channel
    print(conn._sock._sck.version()) # little bit dirty, but work