DiCEとは、ダイナミックDNSを簡単に更新出来ちゃう素敵ソフト。
Windows版もLinux版もある。
俺も固定IPアドレス取る前はお世話になりました。
詳しくは、
DiCE link

で、本題のプラグイン編集について。
DiCEのインストールフォルダの中にPlug-inってフォルダ。
その中にplgファイルがたくさん。

国内外いろんなサービスに対応してて、それぞれにプラグインがあるみたい。

そのファイルの中身を片っ端から見ていく。
エンコードがEUCなんで、メモ帳では見れない。(Vistaはどうか知らないけど。)
Windowsでの俺の好きテキストエディタはEmEditor

中身を見ると、とてもわかりやすいテキストの設定ファイル。

[大カッコ]でセクションが別れてて、それぞれのなかで「設定名=値」で設定するみたいだけど、だいたい直感のまんま書き換えられる。
以下、それぞれのセクションについて俺がやったことを羅列。

[DiCE] そのまんま。
[ServiceInfo] 何に影響するのか分からないけど、自分のに書き換えとく。
[Updater] これが大事。後述。
[Domains] ドメインの一覧を改行区切りで書く。イベント編集時、ドメイン名の選択肢になる。
[Options] ワイルドカードとかのオプションを書く。詳細後述。
[Response] サーバの返答パターンを書く。詳細後述。
[Command] 不明。
[Messages] レスポンスに対して、DiCEのステータスウィンドウに表示するメッセージを書く。詳細後述。


[Updater]
Method=GET・POST・NIFTY・GnuDIP等々。
GETとPOSTは分かるけど、他はそれぞれサービス提供サーバ独自の規格のようなものがあるようで、そーゆーのはplgファイルとは別にpllファイルってのがある。ただしこれはバイナリデータのようで解読出来なかった。
俺は更新用のPHPスクリプトにPOSTでデータを渡せばいいので、

Method=POST

とした。

Script=http://云々・・・
データを渡すスクリプトのURLをhttp://から書けばいい。
POSTの場合でも、GETでデータを渡すときのようにファイル名の後に
?name1=value1&name2=value2&name3=value3・・・
と書いていく。
ここで問題になるのが、イベント編集で設定した各種変数なんだけど、
いくつかのプラグインファイルを覗いて試してみた結果、判明したものを以下に列挙。

<U> ユーザ名
<P> パスワード
<I> IPアドレス
<H> ホスト名
<D> ドメイン名
<S> ホスト名+ピリオド+ドメイン名
<O1><O2><O3>・・・ [Options]で設定した項目(後述)

これを用いて、

[Updater]
Method=POST
Script=http://???.genkikko.net/dns.php?id=<U>&pass=<P>&ip=<I>&dn=<S><O1><O2>&

てな感じで書けばいい。
ここで最後に&を追記したのは、間違ったわけではなくて。
どうもDiCEはScript=の行の最後の改行コードまで送ってくるようで、解決策としてダミーデータを送信するように書いてやって、必要なデータに改行が混ざらないようにしてやるため。
気持ち悪かったら、&a=aとか適当なこと書くのもいいかも。
もっとまともな方法としては、スクリプト側でこの改行コードを取り除くのもアリだけど。
ちなみにそうする場合、プラグインファイルをLFのみで書いていても、送られてくる改行コードはCR+LFであることに注意が必要。
両方取り除いてやらんといかん。
他のプラグインを見ると、最後に<OI>という謎の変数が含まれてるのが多いみたいだけど、それ入れても意味なかったからこれにした。
何か別な方法があるのかも知れない。

[Options]
それぞれのオプションについて、abcの3行ずつ記述が必要な模様。
たとえば、ワイルドカードのON/OFF切り替えだと、

[Options]
01a=Wildcard
01b=&wc=
01c=OFF|ON

こうなる。
01aは、イベントの編集で詳細タブのオプション欄に表示される名前。
01bは、スクリプトにデータを渡す際の&name=valueの&name=に相当する部分。
01cは、OR演算子「|」で区切られたら選択肢、空ならたぶんテキストボックスになって、選択もしくは入力した内容が&name=valueのvalueに相当する部分になる。

これで、Script=の中で<O1>と指定した部分に、01b01cが挿入される。
つまり、上の例でONを選択すれば、変数<O1>の中身は&wc=ONとなる。

複数のオプションを指定するには、
02a,02b,02cが<O2>に・・・という形でどんどん追加できる。

[Response]
Script=で指定したスクリプトが返してきたHTMLファイルなんかから、指定した文字列を探してくるっぽい。
それを、数字=文字列で関連づけて、サーバの応答を判断する。

[Response]
1=Success
21=Error
22=wrong password

と指定しておくと、サーバの返答を、1,21,22と、それ以外に分類する。
この結果を[Messages]で使う。

[Messages]
[Resonse]での結果の分類を、ここで指定した文字列としてDiCEメインウィンドウのステータスバーに表示する。

[Messages]
1=うまいぐあいにいきました。
21=エラーが返ってきましたよ。
22=パスワード違うって怒られました。

こうしとくことで、上の[Response]と連動して、スクリプトが返してきた文字列に、「Success」があれば、結果は1なので、[Messages]の1のとこ、「うまいぐあいにいきました。」が表示される。という具合。
ちなみに、いろいろやってみたところ、この数字が1桁だと成功、2桁だと失敗とみなされて、メインウィンドウ内のイベントの左のとこに、緑のチェックが付くか、赤いペケポンが付くかの分かれ道になる様子。

[Command]に関しては、触ってないので分からない。

ちなみに、これで書き換えたプラグインファイルは、そのままLinux版DiCEでも使えた。


データベースに接続できませんでした。

アンケート

このページの内容はいかがでしたか?
片手間にポチっと送信してやってください。
役に立った 0
おもしろかった 0
ふつー 0
つまらなかった 0
欲しい情報と違った 0
Score:0