0

これは Python の初心者の問題です。アドバイスをいただければ幸いです。

no-ip.com は、コンピューターの変化する IP アドレスを更新する簡単な方法を提供します。URL http://user:password@dynupdate.no-ip.com/nic/update?hostname=my.host.nameを開くだけです。

... firefox で入力すると、http と https の両方が機能します。最近のバージョンのUbuntuでNetwork Managerが使用する「/etc/NetworkManager/dispatcher.d」にあるスクリプトにそれを実装しようとしました。

機能するのは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 に答える