ページ更新: 2004-01-07 (水) (5613日前)

関連: Linux/nsupdateでホストを登録

NTT Flet's ADSLルータ「NV」に割り付けられたIPを取得するperlスクリプト (getnvip)

ルータの「情報 → 現在の状態 → 表示モード=拡張」画面から割り付けられたIPを取得しているだけ。LWP (lib-www-perl)を使っているだけだったり。

このスクリプトは、dymanic DNS用のシェルスクリプトからIP=`getnvip`という風に呼び出して使うために2003年に作ったもの。

CygwinのperlやActive Perlでも動作すると思われるが、未確認。

  • 機能
    • 接続先1 に割り付けられているIPを表示する。
  • 設定箇所
    • my $passwd にはルータのパスワードを入れる。
    • my $router にはルータのIPを入れる。
    • プロバイダ名のところに、ルータに設定したプロバイダ名を入れる。
#!/usr/bin/perl -w

# getnvip
# $Id$
# get Global IP (for NTT Flet's ADSL NV-Router)

use strict;
use LWP::Simple;

my $user    = 'user';
my $passwd  = '*****';
my $router  = '*******';
my $file    = '/info_main.html';

my $url = "http://$user:$passwd\@$router$file";

## search string
my $line = <<'STR'
<TR><TD NOWRAP COLSPAN=2 BGCOLOR=white><B><LABEL onMouseOver=msgShow\(event,31\)  onMouseOut=msgHide\(\)>【接続先1 \[プロバイダ名\] 状態】</LABEL></B></TD></TR>
<TR BGCOLOR=THISTLE>
    <TD><LABEL onMouseOver=msgShow\(event,11\) onMouseOut=msgHide\(\)>ADSL側 IPアドレス</LABEL></TD>
    <TD>(\d+\.\d+\.\d+\.\d+) </TD>
</TR>
STR
;

##
my $slurp = get($url);

## search
if ($slurp =~ m/$line/) {
        print "$1";
}