Technology

MyDNS IP通知スクリプト

といっても、DiCEを使うわけでもなく、HTTPでアクセスしてフォームのsubmitを押すシミュレーションをするという、アナクロかつ一番ダメな手法です。HTTP-Basicとか使うのが手っ取り早いのですが、とりあえずWWW::Mechanizeの秀作として…。

#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;

# mydns情報
my $mydnsAddr='http://www.mydns.jp/';
my $id='(MyDNS ID)';
my $pw='(MyDNS PW)';
my $mydnsIpDirectAddr='http://www.mydns.jp/?MENU=400';

#####################################################

my $mech = WWW::Mechanize->new();
my $response;

# login
$response = $mech->get( $mydnsAddr );
$mech->form_number(1);
$mech->set_fields('masterid' => $id, 'masterpwd' => $pw);
$response = $mech->submit;

$response = $mech->get( $mydnsIpDirectAddr );
$mech->form_number(2);
$response = $mech->submit;

$mech->form_number(2);
$response = $mech->submit;

formの指定に番号を使っているのがスマートじゃないのですが、form nameが指定されていないのでこの方法です。


Topic