rubyのhttp-access2
ハマッタ…。ドキュメントなさ過ぎ。結局はソース嫁なのね。何はまったかというと、sample/howto.rbを参考にpostするつーのをやったんだけど、Clientのpostメソッドじゃクエリー送れない仕様なのね…。
結局
client.request('POST',uri, {'username' => username , 'password' => password})
とかやってうまくいった。単純なプログラムなのに一時間かかったよ…pqpq。
んで何をつくってたかというと、value domainのdnsのレコード更新用スクリプト。汎用JPドメインはまだDDNSサービスに対応してなかったのね…。でもTTLが120って短い期間なのでレコード更新したらすぐに反映されたのでいけた。dnsidは自分のhostのid。
#!/usr/bin/env ruby require 'http-access2' username = 'user' password = 'password' dnsid = 'xxxxx' #自分のhostのid。htmlソースとかに乗ってるのでログインすれば確かめられる。 ip_addr = 'xxx.xxx.xxx.xxx' records = <<EOF a @ #{ip_addr} mx @ 10 EOF login_uri = 'http://www.value-domain.com/login.php' l_action = 'login2' moddns_uri = 'http://www.value-domain.com/moddnsfree.php' action = 'moddns3' c = HTTPAccess2::Client.new c.set_cookie_store("cookie.dat") c.request('POST',login_uri, {'username' => username , 'password' => password, 'action' => l_action , 'location' => '' ,'email'=>'','domainname'=>''}) c.request('POST',moddns_uri, {'action' => action , 'dnsid' => dnsid , 'records' => records, 'box' => '' }) c.save_cookie_store