Yritin saada tehtyä Python-skriptin, joka avaa yhteyden ja päivittää dy.fi-osoitteen. Jostain syystä kirjautuminen ei onnistu. Tässä olisi koodi:
import urllib2 auth_handler = urllib2.HTTPBasicAuthHandler() auth_handler.add_password(realm='DY-Update', uri='http://localhost/dyfi-updater.py', user='e.mail@mailer.com', passwd='password') opener = urllib2.build_opener(auth_handler) urllib2.install_opener(opener) urllib2.urlopen('http://www.dy.fi/nic/update?hostname=host.dy.fi')
Eli aika lailla kopio Pythonin dokumentaatiosta. Tunnukset ovat toki oikein.
Kukaanko ei tiedä?
"ei onnistu" on aina heikosti ilmaistu. Miten ei onnistu? Tuleeko jokin virheilmoitus?
Juu, tulee siis 401, kirjautuminen epäonnistui.
Pitäisiköhän kohdassa "uri" olla http-osoite dy.fi-sivustolle? Eikös tuo tarkoita sitä, että täytetään tunnukset omalle palvelimelle, kun niitä kysytään?
Ja tähän iodottelisin edelleen vastausta. Tuo Macron neuvo ei ainakaan toiminut.
Sinun pitää avata sivu ennen tunnuksien antamista.
Juuh, tottakai hostikoneella. Tuo ei vaan vieläkään hyväksy kirjautumista. Veikkaan, että AuthHandler jäi asentamatta, mutta en muista, että miten se tehdään.
Kannattaa lukea Pythonin urllib2 dokumentaatiota.
Lisäksi esimerkkejä. http://docs.python.org/library/urllib2.html#examples
Voit käyttää myös CURLia tai WGETiä:
dy.fi kirjoitti:
curl -D - --user useraccount:password http://www.dy.fi/nic/update?hostname=hostname.
dy.fi wget -q -O - --http-user=username@dom.ai.n --http-passwd=p4ssw0rd http://www.dy.fi/nic/update?hostname=asdfg.dy.fi
Tein sinulle myös koodin.
import urllib.request import base64 encodedstring = base64.b64encode(b"tunnus:salasana")[:-1] auth = "Basic " + str(encodedstring) urllib.request.Request("http://www.dy.fi/nic/update?hostname=host.dy.fi", None, {"Authorization": auth })
Käytin vähän eri funktioita päivitykseen, mutta tästä tuli yksinkertaisempi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.