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