auのデバイスIDから機種名を調べようと思ったら
http://www.au.kddi.com/ezfactory/tec/spec/4_4.html
ここにある対応表を利用することになると思うのぢゃが、毎回調べるのも面倒ですな。
そこでこのページから
デバイスID=>機種名
という形でハッシュデータを作成するスクリプトを作ってみたぞぃ。
#!/usr/bin/perl -w use strict; use warnings; use Data::Dumper; use LWP::UserAgent; use HTTP::Request; sub get_devices { my $user_agent = 'Mozilla'; my $url = 'http://www.au.kddi.com/ezfactory/tec/spec/4_4.html'; my $referer = ''; my $str = ''; my $ua = LWP::UserAgent->new(); $ua->timeout(5); $ua->agent($user_agent); my $req = HTTP::Request->new(GET => $url); $req->referer($referer); my $res = $ua->request($req); if ($res->is_success()) { $str = $res->content(); } else { die("request error."); } my %device = (); my %tmp = reverse($str =~ m!<td bgcolor="#f2f2f2"[^>]*><div class="TableText">(.+?)</div></td>\s+<td><div class="TableText">(.+?)</div></td>!gs); for my $key (keys(%tmp)) { my $src_key = $key; $key =~ s!<[^>]+>|\s| !!gs; if (!$key) { next; } $tmp{$src_key} =~ s!\r\n|\t|<br>!!g; $device{$key} = $tmp{$src_key}; if ($key =~ m!/!) { my @device_ids = split('/', $key); for my $device_id (@device_ids) { $device{$device_id} = $tmp{$src_key}; } delete($device{$key}); } } return \%device; } my $au_devices = get_devices(); print(Dumper($au_devices));
これを利用すれば、キーにデバイスIDを指定すれば機種名をとってこれますな。
ちなみに取得元のhtmlのフォーマットが変わっちゃうとうまく動作しなくなるかも・・・。