2013年6月29日土曜日

LAN DISK HDL2-Aでリモートシャットダウン



CSRF対策でruby使わないと簡単にはリモートシャットダウンできないようになってるのね。ということで書きました。


urlとpassの行を適宜自分の環境に書き換えれば動くはずです。


ただしruby mechanizeを使っているのでFreeBSDな人はwww/rubygem-mechanize をあらかじめインストールしておいてください。






#!/usr/local/bin/ruby
# -*- coding: utf-8 -*-
####### 設定内容
url="http://10.0.0.1"
pass="your password"

####### 以下処理内容
require 'rubygems'
require 'mechanize'
agent=Mechanize.new
page=agent.get(url);
# ログイン
page.form_with(:name => 'form') { |f|
f.field_with(:type => 'password').value=pass}.submit
#シャットダウンページ取得
page=agent.get(url+"/system/detail/system/shutdown.php");
#デフォルトで再起動ではなく、シャットダウンに選択されてるはず、そのままsubmit
page=page.form_with(:name => 'form').submit
#確認画面(本当はjavascriptで確認画面処理してるので、飛ばして最後のシャットダウン実行
page=page.form_with(:name => 'form'){|f| f.default_event="shutdown" }.submit






0 件のコメント:

コメントを投稿