在python中通过身份验证连接到套接字
我正在尝试通过python套接字连接到mongodb实例。url如下所示 用户名:password@host.com:端口 我如何使用python套接字连接到它 以下代码给出了此错误:[Errno-5]没有与主机名关联的地址在python中通过身份验证连接到套接字,python,sockets,mongodb,http-authentication,Python,Sockets,Mongodb,Http Authentication,我正在尝试通过python套接字连接到mongodb实例。url如下所示 用户名:password@host.com:端口 我如何使用python套接字连接到它 以下代码给出了此错误:[Errno-5]没有与主机名关联的地址 import socket import tornado full_url = '%s:%s@%s' % (username, password, host) s = socket.socket() s.connect((full_url, port)) stream =
import socket
import tornado
full_url = '%s:%s@%s' % (username, password, host)
s = socket.socket()
s.connect((full_url, port))
stream = iostream.IOStream(s)
编辑-我询问的原因是asyncmongo目前不支持这种url类型。我想看看我是否能写一个补丁。asyncmongo库使用类似于上面代码中的套接字进行连接 您应该使用驱动程序连接到mongodb。如果你正在使用龙卷风(看起来你打算这么做),试试看;如果您使用的是线程化web服务器/应用程序框架(Django、Pylons等),则可以直接使用
编辑:至于此代码不起作用的原因,
socket
模块不接受URL进行连接,只接受主机名和端口。这是一个低级图书馆。要连接到(Web)URL,请考虑使用或./P>
编辑2:MongoDB中的身份验证不在传输级别处理,而是在应用程序级别处理。我建议您先阅读,然后看看PyMongo是如何实现身份验证的(在和中)。您还需要为asyncmongo移植或重新实现MongoDB连接URI解析,这已被记录在案。我在问题中对此进行了澄清,但我正在尝试让asyncmongo使用这些URL:)