python-3.x - 使用 SSLContext 指定 IP 地址 + SNI
问题描述
如何使用 Python 的 SSLContext 指定您希望连接的服务器的 IP 地址以及SNI?
我可以轻松地单独指定 SNI,但无法确定如何将请求指向特定的 IP 地址
例如,这将导致在 'Client Hello' 中发送 'mywebsite'
hostname = "mywebsite"
context.wrap_socket(sock, server_hostname=hostname)
你如何控制你连接的IP?
谢谢!
解决方案
你的sock
变量是如何创建的?
它是一个套接字,因此它是在调用之前指定目标 IP 和端口的地方wrap_socket
。
像:
sock = socket.create_connection((HOST, PORT))
在 TLS 级别“太晚了”:TLS 握手发生在 TCP/IP 连接建立之后,因此在您发送 SNI 扩展时,您已经连接到特定的 IP 地址(和端口)。
推荐阅读
- layout - Plotly:仅在特定子图中堆积条形图
- gitlab - GitLab CI 预定义的环境变量仅在子句中不被识别?
- regex - 使用正则表达式提取字符串中除精确关键字之外的所有内容
- ios - MDCSnackbarManager 按钮字体不起作用
- asp.net-mvc - 在 Kendo UI 网格内单击链接标记后多次调用 MVC 操作
- javascript - 将少数元素的最高高度设置为Javascript中的所有元素
- c++ - 如何在另一个对话框MFC上更新数据,我可以从问答记录中找到答案
- forms - xamarin froms listview selecteditem 不更新视图的值 - mmvm
- julia - 使用 @parallel 时共享数组值不更新
- c++ - GetLastError 在调用 WinHttpOpenRequest 后返回 6