无法获取python https套接字进行连接

辣椒

因此,我在vm上安装了一个Apache Web服务器。我想编写一个简单的脚本,该脚本将使用套接字获取网站的主页。我可以在没有ssl的情况下完成此操作,但是我最近安装了ssl,并认为我应该尝试使用ssl版本。这是我的代码,基于另一个问题,在Python中打开SSL套接字连接

import socket, ssl
s = socket.socket()
wrappedSocket = ssl.wrap_socket(s)
wrappedSocket.connect(('127.0.0.1', 443))
wrappedSocket.sendall(
    'GET / HTTP/1.1\r\n'
    'Host: vulnerable\r\n'
    'User-Agent: sslsocket.py\r\n'
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n'
    'Accept-Language: en-US,en;q=0.5\r\n'
    'Accept-Encoding: gzip, deflate\r\n'
    'Connection: keep-alive\r\n'
    '\r\n'

)
ans = wrappedSocket.recv(4096)
print ans

该脚本将继续运行,并且从不输出任何内容。经过进一步调试,我发现它在connect()函数调用上中断了,但无法弄清楚为什么会发生。

编辑-在评论中获得一些帮助后,我意识到域名是127.0.1.1。但是,现在我将HTTP标头作为输出,但实际上并没有给我页面的HTML。这次出什么事了?

戴维·杰伊·布雷迪

好像您真的很接近,Henrik已经解决了有关您的连接的问题。

如果您只收到一半的消息,则可能是由于对recv的限制。尝试增加它,或使用makefile方法,这样就不必担心限制。

编辑:显示什么是makefile,可以做什么。

my_socket = socket.socket()
my_socket_input = my_socket.makefile('r')
my_socket_output = my_socket.makefile('w')

这些新工具使操作变得更加简单,就像您正在写入和读取文件一样。使用新的socket_input变量,可以调用readline等方法,而使用socket_output可以调用write等方法。

some_text = my_socket_input.readline()

您无需担心的细节之一就是recv上的缓冲区大小,因为makefile会为您处理

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python套接字无法连接

来自分类Dev

Python套接字通过全球公共IP地址进行连接

来自分类Dev

无法建立套接字连接

来自分类Dev

套接字无法建立连接

来自分类Dev

Python套接字连接异常

来自分类Dev

python套接字拒绝连接

来自分类Dev

Python套接字重新连接

来自分类Dev

套接字未连接 Python

来自分类Dev

用响应连接套接字io,无法获取数据

来自分类Dev

i.MX25上的BlueZ:无法连接RFCOMM套接字:正在进行操作

来自分类Dev

PHP套接字,无法连接-循环?

来自分类Dev

无法在Treeline上连接套接字

来自分类Dev

Docker MySQL无法连接到套接字

来自分类Dev

无法使用javascript连接网络套接字

来自分类Dev

套接字无法检测到断开连接

来自分类Dev

无法使用javascript连接网络套接字

来自分类Dev

无法在本机反应中连接套接字

来自分类Dev

python套接字获取

来自分类Dev

在Python中打开SSL套接字连接

来自分类Dev

Python和TCL之间的套接字连接

来自分类Dev

Python SimpleXMLRPCServer:套接字错误,连接被拒绝

来自分类Dev

Raspberry Pi 之间的 Python 套接字连接

来自分类Dev

如何关闭python中的套接字连接?

来自分类Dev

用python进行套接字编程

来自分类Dev

通过套接字进行Python网络编程

来自分类Dev

在TCP套接字连接期间获取对等方重置的连接?

来自分类Dev

Python套接字:如何在同一wifi上的两台计算机之间进行连接

来自分类Dev

Flutter套接字IO无法连接到Node JS套接字IO服务器

来自分类Dev

Firefox无法建立网络套接字连接,而Chrome可以