あまつぶ

11.10 14:00

 久々にプログラム(といってもAppleScriptだけど)の話を。なんとかWindowsでもDiabloができるようになったのでその話を書こうかと思ったのだけどとりあえずそっちはsent'sの方に書くことにしてこちらではルータを制御するAppleScriptを作るという話。ま、とりあえず見栄えはいまいちだけど実用だけね。
 BetterTelnetを使用するので、まずそれをダウンロード。ま、ルータを買っていろいろいじろうと思ったらどうしても必要になってくるだろうから誰でも持ってるかもしれないけど。それから、スクリプトを書くのだけど、まずは接続から。ぼくはBetterTelnetの方で、デフォルトの接続先をルータのアドレスにしているので、そうなっていない方はそう設定するか適宜スクリプトを変更してほしい。もしなにかわからないことがある場合は、ある程度の相談には乗れるかもしれないのでメールください。

tell application "BetterTelnet2.0b4J2"
	activate
	connect "<default>" host "192.168.0.1" -- 
	send text "********" -- ログインパスワード
	send cr
	send text "administrator"
	send cr
	send text "********" -- 管理者パスワード
	send cr
	send text "connect 2" -- つなぎたい設定を指定
	send cr
	send text "save"
	send cr
	wait for text "セーブ終了"
	send text "exit"
	send cr
	send text "exit"
	send cr
	delay 1 -- 接続がちゃんと切れてくれるように1秒待つ
	quit
end tell


とりあえずはこれだけでできるはず。パスワードは、ログインパスワードと管理者パスワードをそれぞれ入れる。通常は同じでいいと思うけど。接続の設定は、ぼくはなぜか2になっていたのでそれを指定しているが、普通は1なんじゃないかなと思う。ちょっと不明。
 「save」コマンドについては、別に呼ぶ必要はないのだが、exitの際に保存していない項目があると「保存しますか?」ときかれるのでそれを防ぐために入れてある。保存したくないかもしれない時は「exit」のあとに「N」を入れるようにするといいかもしれない。
 それから最初の「activate」は好みの問題かな。切断処理だからバックグラウンドで動かした方がいいかもしれない。そのあたりは適当に判断して変更してほしい。

 次は切断。これは別に説明する必要もないような気がするが、さっきの「send text "connect 2"」という部分を「send text "disconnect 2"」(あるいは「send text "disconnect all"」)にするだけ。接続スクリプトがちゃんと動くのを確認したらそれを複製して変更するといいんじゃないかな。ま、接続の方は手動でやることは少ないと思うので最初から切断の方だけ作るという手もあるし。

 それから自分のIPの調査方法について。これもTelnetでできるから同じようにスクリプトを書いてみると

tell application "BetterTelnet2.0b4J2"
	activate
	connect "<default>" host "192.168.0.1"
	send text "********" -- ログインパスワード
	send cr
	send text "show status pp 2" -- 調べたい設定を指定
	send cr
	send text "exit"
	send cr
end tell


こんな感じになる。こちらは管理者モードでなくてもいけるので、スクリプトが単純だ。「show status pp #」というコマンドで調べることができるのだが、このコマンドで表示される、「PP IP Address Local」と書かれた隣がIPアドレスとなる。上と同様、設定が2になっているが、これは状況によって変更すること。ま、Telnetで自分でコマンドを打ち込んでみればすぐわかると思う。ほんとは有効になっている設定を調べて……とやるんだろうけどそこまではわからなかったので手抜き。要はいろいろいじって自分のところで動けばいいだけだから細かいことは気にしないと(笑)。
 ま、WinでDiabloをやるというのでなければあんまり必要になることもないかもしれないけど。。あと、このアドレスはブラウザで調べることもできて、ここでチェックできる。YAMAHAの方がありがたいcgiを書いてくれたみたい。これは別のルータ(TAやモデムでもおそらく大丈夫のはず)でも使えるんだそうなので他の用途にも使えるかもしれない。わざわざブラウザを立ち上げるのがちょっと面倒だけど。

 一応今回はこんなもんで。そういえばルータでリダイアルしてもらう方法がいまいちわからないのだけどどうやるのかしら。うちのプロバイダ、夜間はbusyばかりでどうにもならないし。。昨日はTAで1000回リダイアルしてつながらず(笑)。もうええわって感じ。はうう。これはプロバイダを変えるというのが一番の解決方法かなぁ。
 次回の予定は、未定。

to November 9, 1998 ↑ to November index → to November 12, 1998