modemmon.xmlの編集

本プログラムは、modemmon.xmlに設定されたモデム別の検索キーを使用してWeb設定画面を検索することで情報を取得して表示します。
ご使用のモデムがmodemmon.xmlに定義されていない場合でも、設定済みの何れかモデムを指定することでうまく動作するかもしれません。
うまくいかない場合でもmodemmon.xmlに情報を追加することで動作させることができるようになるかもしれません。
modemmon.xmlは次の要素からなるXMLファイルです。
XMLというのは、HTMLと同様なただのテキストファイルです。メモ帳とかで編集できます(エンコードはshift_jisになってます)。HTMLが「表示」に主題を置いたものであるのに対して、「データ」に主題を置いたのがXMLだと思ってもらえればよいと思います。

XMLタグ 対応情報 解説  
dsXml - - - ルート要素です。全体をこのタグで囲みます。 必須
xConf - - 一つのモデム情報をこのタグで囲みます。
ModemName - モデムの名称です。重複しないように命名します。
ConnURL 接続状態 接続状態が判別できる情報が書かれたページのURL
ConnKey1 接続状態を判別する情報の前にあるページ内で一意の文字列
ConnKey2 接続状態を判別する情報を囲んでいるタグ
ConnKey2Cnt ConnKey1から幾つ目のConnKey2で接続情報のタグにたどり着けるか
ConnWord 接続されている場合に印字される文字列
DownSpeedURL 下りリンク速度 下りリンク速度が書かれたページのURL
DownSpeedKey1 下りリンク速度情報の前にあるページ内で一意の文字列
DownSpeedKey2 下りリンク速度の情報を囲んでいるタグ
DownSpeedKey2Cnt DownSpeedKey1から幾つ目のDownSpeedKey2で下りリンク速度の情報にたどり着けるか
UpSpeedURL 上りリンク速度 上りリンク速度が書かれたページのURL
UpSpeedKey1 上りリンク速度情報の前にあるページ内で一意の文字列
UpSpeedKey2 上りリンク速度の情報を囲んでいるタグ
UpSpeedKey2Cnt UpSpeedKey1から幾つ目のUpSpeedKey2で上りリンク速度の情報にたどり着けるか
IpURL WAN側IPアドレス WAN側IPアドレスが書かれたページのURL
IpKey1 WAN側IPアドレス情報の前にあるページ内で一意の文字列
IpKey2 WAN側IPアドレスの情報を囲んでいるタグ
IpKey2Cnt IpKey1から幾つ目のIpKey2でWAN側IPアドレスの情報にたどり着けるか
LogURL 通信情報ログ 通信情報ログが書かれたページのURL
LogKey1 通信情報ログの前にあるページ内で一意の文字列
LogKey2 通信情報ログの情報を囲んでいるタグ
LogKey2Cnt LogKey1から幾つ目のLogKey2で通信情報ログの情報にたどり着けるか
PhoneURL 電話の通話状態 電話の通話状態が分かるページのURL 省略可
PhoneKey1 電話の通話状態を判別する情報の前にあるページ内で一意の文字列
PhoneKey2 電話の通話状態を判別する情報を囲んでいるタグ
PhoneKey2Cnt PhoneKey1から幾つ目のPhoneKey2で電話の通話状態のタグにたどり着けるか
PhoneWord IP電話が通話中の場合に印字される文字列
PhoneWord2 加入電話が通話中の場合に印字される文字列

URLは設定画面で指定するURLからの相対パスです。
*Key2で指定するタグには"<"">"や属性は含めません。例えば、"<TD NOWRAP>"であれば"TD"とのみ設定します。
「電話の通話状態」に関する情報はタグごと省略可能です。「通信情報ログ」の省略に関しては後述します。

多分、上の表だけでは何のことだかサッパリだと思うのでDR202Cモデムの場合を例に簡単に説明します(「電話の通話状態」は省略されています)。

info_main.html の抜粋
    :
msgArr[10] = '接続状態を表示します。';
    :
<TR BGCOLOR=THISTLE>
<TD><LABEL onMouseOver=msgShow(event,10) onMouseOut=msgHide()>接続状態</LABEL></TD>
<TD>回線接続中 </TD>
</TR>
    :

modemmon.xml の抜粋
    :
<xConf>
<ModemName>DR202C</ModemName>
<ConnURL>info_main.html</ConnURL> ← A
<ConnKey1>&gt;接続状態</ConnKey1> ← B
<ConnKey2>TD</ConnKey2> ← C
<ConnKey2Cnt>1</ConnKey2Cnt> ← D
<ConnWord>回線接続中</ConnWord> ← E
<DownSpeedURL>mainte_info.html</DownSpeedURL>
<DownSpeedKey1>&gt;回線速度</DownSpeedKey1>
<DownSpeedKey2>TD</DownSpeedKey2>
<DownSpeedKey2Cnt>1</DownSpeedKey2Cnt>
<UpSpeedURL>mainte_info.html</UpSpeedURL>
<UpSpeedKey1>&gt;回線速度</UpSpeedKey1>
<UpSpeedKey2>TD</UpSpeedKey2>
<UpSpeedKey2Cnt>2</UpSpeedKey2Cnt>
<IpURL>info_main.html</IpURL>
<IpKey1>&gt;WAN側 IPアドレス</IpKey1>
<IpKey2>TD</IpKey2>
<IpKey2Cnt>1</IpKey2Cnt>
<LogURL>log_main.html</LogURL>
<LogKey1>[通信情報ログ]</LogKey1>
<LogKey2>TEXTAREA</LogKey2>
<LogKey2Cnt>1</LogKey2Cnt>
</xConf>
    :
  1. 接続状態が表示されるページのURLは「http://192.168.0.1/info_main.html」です。「http://192.168.0.1/」までは設定画面で指定しているので省きます。URLは、WEB設定画面上の該当個所で右クリックして表示されるメニュー内の「プロパティ」で確認できます※1
  2. info_main.htmlの画面を見ると、接続状態を示す項目の直前に「接続状態」の文字列があるのでこれを使います。しかし、HTMLソースレベルで見る※2と、「接続状態」の文字列がJavaScriptで使用するメッセージ文字列としてこの項目以前に出現しています。そこでこれと区別するために直前の「>」も含めて「>接続状態」として使うことにします。XML内ではHTMLと同様に「>」は「&gt;」と実体参照で記入する必要があります。よって、結局「&gt;接続状態」と設定することになります。
  3. 接続状態を示す文字列は<TD>タグで囲まれているので「TD」と設定します。
  4. 「>接続状態」の後の最初の<TD>タグに接続状態を示す文字列があるので「1」と設定します。終了タグ(</TD>など)はカウントしません。
  5. 接続状態にあるときは「回線接続中」と表示されるので、これを設定します。
後は同じ要領です。
*Wordで指定する文字列は、*Key2と*Key2Cntで指定したタグ内のデータ全てを記述する必要はありません。前後にある空白などは省略してください。
リンク速度やIPアドレスは、*Key2と*Key2Cntで指定したタグ内のデータの中で最初に出現した連続する半角数値(0〜9,-.)のみが有効データとなります。例えば"<TD>上り:7104Kbps</TD>"といったデータでも"7104"が取り出されます。

「通信情報ログ」はモデムによっては該当情報が無いかもしれません。その場合は次のように設定してください。通信情報ログに関する機能が使えないように制御されるようになります。
<LogURL></LogURL>
<LogKey1></LogKey1>
<LogKey2></LogKey2>
<LogKey2Cnt>1</LogKey2Cnt>
通信情報ログと、履歴画面で表示する履歴ログは別物です。通信情報ログが使えなくても履歴表示や切断レポートなどは問題なく使えます。

「電話の通話状態」もモデムによっては該当情報が無いかもしれません。そもそも、IP電話の契約をしていない人には関係ありませんし、この情報そのものが不要であるという方も多いでしょう。この場合には、"Phone"で始まる全てのタグを省略してください。
IP電話の通話状態は欲しいが、加入電話については不要だ(あるいはそのような情報がWeb設定画面上に無い)という場合にはPhoneWord2は、
<PhoneWord2></PhoneWord2>
としてください。

modemmon.xmlは、モデムモニター起動時に読み込まれます。よって、編集内容を反映させるにはモデムモニターを一旦終了して起動しなおす必要があります。
動作確認する時は、設定画面の「デバック用エラー表示」をONにすることをお勧めします。

※1 Web設定画面はフレームが使用されている場合があります。このため、アドレスバーの表示内容ではなくプロパティを見る必要があります。
※2 Web画面上で右クリックして表示されるメニュー内で「ソースの表示」を選択して表示される内容を見ること。

□オプションタグ

Web設定画面にある数値情報であれば、modemmon.xmlにオプションタグを使って定義することで、取得する情報を最大9個まで追加することが可能です。
オプションタグで定義した情報は、状態が「接続」の履歴ログに出力されます。この情報は履歴画面でも参照できます。また、メイン画面の右クリックで表示される「オプション情報表示」で随時取得して参照することもできます。

オプションタグは、ConnURLとかと同じレベルに次の形式で定義します。

XMLタグ 対応情報 解説
dsXml - - -  
xConf - -  
OptTitle_? オプション 履歴一覧の列名に使用する文字列
OptURL_? 取得したい数値が書かれたページのURL
OptKey1_? 取得したい数値の前にあるページ内で一意の文字列
OptKey2_? 取得したい数値を囲んでいるタグ
OptKey2Cnt_? OptKey1_?から幾つ目のOptKey2_?で取得したい数値情報にたどり着けるか

?は「1」〜「9」の半角数値です。必ず1から順に使用します。つまり、OptTitle_1が無い状態でOptTitle_2を定義しても無効です。
以下に記述例を示します。

<OptTitle_1>HECエラー</OptTitle_1>
<OptURL_1>mainte_info.html</OptURL_1>
<OptKey1_1>&gt;HEC</OptKey1_1>
<OptKey2_1>TD</OptKey2_1>
<OptKey2Cnt_1>1</OptKey2Cnt_1>

オプションタグを1つでも定義すると、自動的に「上りリンク速度」も履歴に出力されるようになります。
履歴画面において、オプションタグで指定した情報は右側に隠れています。表をスクロールさせるか画面サイズを大きくして参照してください。

オプションタグを多く設定しても、実際に情報を取得するのは履歴ログを出力するタイミングです(「オプション情報表示」を除く)。よって、履歴が残らないような通常の確認タイミングでのアクセスによる負荷はかわりません。