0

这是python的新手问题,非常感谢建议。

no-ip.com 提供了一种简单的方法来更新计算机不断变化的 IP 地址,只需打开 URL http://user:password@dynupdate.no-ip.com/nic/update?hostname=my.host.name

...在 Firefox 中输入时,http 和 https 都可以工作。我试图在“/etc/NetworkManager/dispatcher.d”中的脚本中实现这一点,以供网络管理器在最新版本的 Ubuntu 上使用。

起作用的是python脚本:

from urllib import urlopen;
urlopen("http://user:password@dynupdate.no-ip.com/nic/update?hostname=my.host.name")

我想要的与“https”相同,它不那么容易工作。请问有没有人可以

(1) 向我展示 https 的脚本应该是什么样子,

(2) 给我一些关键字,我可以用它来了解这个。

(3) 甚至可以解释为什么当脚本更改为使用“urllib2”时它不再起作用:

from urllib2 import urlopen;
urlopen("http://user:password@dynupdate.no-ip.com/nic/update?hostname=my.host.name")

谢谢!

4

1 回答 1

0

user:password部分不在实际 URL 中,而是 HTTP 身份验证的快捷方式。浏览器的 URL 解析库会过滤掉它们。在 urllib2 中,你想要

import base64, urllib2
user,password = 'john_smith','123456'
request = urllib2.Request('dynupdate.no-ip.com/nic/update?hostname=my.host.name')
auth = base64.base64encode(user + ':' + password)
request.add_header('Authorization', 'Basic ' + auth)   
urllib2.urlopen(request)
于 2013-02-02T09:28:15.923 回答