無線LAN WEBキー更新スクリプト③

WEPキー要件。

  • 128ビットWEP(ASCII 13文字)
  • 毎日変わる
  • 秒レベルで暗算できる
  • それなりにぐちゃぐちゃ?

まぁこれくらいでいいや。例によってsyslogに結果を書いとけ。

[root@localhost]# pwd
/etc/cron.daily
[root@localhost]# cat chwep 
#!/usr/bin/perl -w
use strict;
use warnings;
use DateTime;
use HTTP::Request::Common;
use LWP::UserAgent;
use Sys::Syslog;

# const
my $USERID = 'xxxxx';
my $PASSWD = 'zzzzz';
my $URL = 'http://192.168.1.2/setup/setup_null.shtml';

# wep key
my $d = DateTime->now->set_time_zone('Asia/Tokyo');
my $key = unpack 'H*', pack 'A*', join '', reverse split '',
  ($d->year + $d->month + $d->day) . $d->day_of_week .
  ($d->year - $d->month - $d->day) . $d->day_of_week .
  sprintf "%03d", $d->month * $d->day;

# post
my $req = POST $URL, [
  i1_3_6_1_4_1_937_2_1_2_7_0 => '3',
  i1_2_840_10036_1_2_1_3_1_1 => '1',
  i1_2_840_10036_1_2_1_3_1_2 => '1',
  i1_2_840_10036_1_5_1_1_1   => '1',
  i1_2_840_10036_1_5_1_4_1   => '1',
  x1_2_840_10036_1_3_1_2_1_1 => $key];
$req->authorization_basic($USERID, $PASSWD);
my $resp = LWP::UserAgent->new->simple_request($req);

# syslog
openlog($0, 'cons,pid', 'user');
syslog('info', $resp->is_success ? 'success' : 'fault');
closelog();