gpt4 book ai didi

python - 在python中通过身份验证连接到套接字

转载 作者:行者123 更新时间:2023-12-01 06:09:40 24 4
gpt4 key购买 nike

我正在尝试通过 python 套接字连接到 mongodb 实例。网址如下所示

用户名:密码@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 = iostream.IOStream(s)

编辑 - 我问的原因是 asyncmongo 目前不支持这种类型的 url。我想看看是否可以写一个补丁。 asyncmongo 库使用类似于上面代码中的套接字进行连接。

最佳答案

您应该使用驱动程序连接到 mongodb。如果您正在使用 Tornado(看起来您打算这样做),请尝试 asyncmongo ;如果您使用的是线程 Web 服务器/应用程序框架(Django、Pylons 等),您可以使用 PyMongo直接。

<小时/>

编辑:至于为什么此代码不起作用,socket 模块不接受连接 URL,只接受主机名和端口。它是一个低级库。要连接到(网络)网址,请考虑使用 urllib2httplib .

<小时/>

编辑 2: MongoDB 中的身份验证不是在传输级别处理的,而是在应用程序级别处理的。我建议您先阅读Implementing Authentication in a Driver ,然后看看 PyMongo 如何实现身份验证(在 connection.pydatabase.py 中)。您还需要移植或重新实现 asyncmongo 的 MongoDB 连接 URI 解析,记录为 here .

关于python - 在python中通过身份验证连接到套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6540515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com