dsasの中の人が作ったperlで、SoftbankのIPだけが取得できなくなったので調べてみた。どうやらSoftbankのIP帯域が載ってるURLが変わったのが原因で、Net::CIDR::MobileJP::Scraper::Plugin::Vodafone.pmが古いままだかららしい。適当に修正したら動くようになった。
- new: http://creation.mb.softbank.jp/web/web_ip.html
- old: http://developers.softbankmobile.co.jp/dp/tech_svc/web/ip.php
作者にお知らせしたいけど、testの書き方わかんないしpatchの送り方とかわかんねぇ。アレか、わかんねぇとか言ってないでこれを機に調べれば良いのか。
# diff -u Vodafone.pm.org Vodafone.pm --- Vodafone.pm.org 2008-10-11 10:03:00.000000000 +0900 +++ Vodafone.pm 2008-10-11 10:05:25.000000000 +0900 @@ -3,7 +3,8 @@ use warnings; use base qw/Net::CIDR::MobileJP::Scraper::Plugin/; -sub url { return 'http://developers.softbankmobile.co.jp/dp/tech_svc/web/ip.php'; } +sub url { return 'http://creation.mb.softbank.jp/web/web_ip.html'; } + sub run { my ($self, ) = @_; @@ -12,7 +13,7 @@ my $content = $self->get($url); my @result; - while ($content =~ m!<FONT size="2" class="j10".*?>(\d+\.\d+\.\d+\.\d+/\d+)</FONT>!g) { + while ($content =~ m!<td bgcolor=".*?"> (\d+\.\d+\.\d+\.\d+/\d+)</td>!g) { push @result, $1; } return \@result;