NetGenesis4プロトコル解析

Last Update: 1999.08.11
1999.08.11 公式ライブラリ(DLL V1.011)、ステータスモニタ(V1.00)から得た情報を反映。
1999.08.06 状態確認要求応答(F/W2.313)に接続してからの送受信バイト数関連、ボーレート追加
1999.08.05 状態確認応答(F/W2.313)に接続してからの時間、時計モード、回線の種類を追加
1999.08.02 状態確認応答(F/W2.313)の接続文字列付近がちょっと違ってたみたいなので修正しました。
1999.07.30 F/W 2.313が公開されました。
状態確認コマンドに変更があるので今までのソフトは使えない場合があります。
1999.5.19公開の公式ライブラリは使えません。

マイクロ総合研究所から発売されてる、 NetGenesis4のプロトコルの解析をしてみました。

※NetGenesis4はモデムやTAを外付けに必要な低価格なダイヤルアップルータです。

解析結果は独自のもので、マイクロ総合研究所が公式に認めているものではありません。
間違っていることも考えられます。
実際にこの情報を元に試す場合は、自己責任でお願いします。

環境
基本事項
手動接続の流れ
NetGenesis4検索
接続要求、切断要求
状態確認
デフォルト・ダイヤルアウト接続先設定要求
時刻設定
ファームウェア情報
設定モード
C言語版サンプルプログラム
CGI版サンプルプログラム(Perl)
NetGenesis4シミュレータ(ソフト開発者向け)
※このページは固定ピッチのフォント設定によっては、ずれてしまい読みにくいことがあります。


環境

NetGenesis4 Firmware Version : 1.1101
NetGenesis4 セットアップユーティリティ NWG4set Ver.1.25
   |
   |設定モードが暗号化通信。その他は大きな変更なし。
   ↓
NetGenesis4 Firmware Version : 2.002, 2.0022, 2.104 (PS1)
NetGenesis4 セットアップユーティリティ NWGset Ver.2.04
   |
   |マルチアカウント対応。状態確認応答変更。接続先変更コマンド追加。
   ↓
NetGenesis4 Firmware Version : 2.204, 2.210 (PS1)
NetGenesis4 セットアップユーティリティ NWGset Ver.2.47, 2.62
NetGenesis公式I/F向け関数仕様書 第1版
   |
   |状態確認要求/状態確認応答変更。
   |検索・接続・切断・接続先設定・時刻設定・ファームウェア情報には変更がありません。
   ↓
NetGenesis4 Firmware Version : 2.313 (PS1)
NetGenesis4 セットアップユーティリティ NWGset Ver.2.70 , Ver.2.71
NetGenesis公式I/F向け関数仕様書 第2版
NetGenesisステータスモニタ Ver.1.00

基本事項

セットアップユーティリティおよびNetGenesis4は以下のデータ形式で通信を行う。
NetGenesis4へはUDPのポート4449を使用する。
NetGenesis4の応答は、ユーティリティが送信に使ったUDPのポート番号が使われる。
ユーティリティでは、使用するポート番号はOS任せ(プログラム的に言えばポートに0を指定する)
00000 : 00 01 00 00 41 01 00 10 - 00 00 00 00 00 00 00 00   ................
        ~~~~~       ~~~~~ ~~~~~   ~~~~~~~~~~~
00010 : 4E 57 47 34 20 43 68 65 - 63 6B 00 11 00 1B 00 3A   ................

 +00 +01  シーケンス番号。ユーティリティが送信するたびにカウントアップ。
 +02 +03  00 謎
 +04 +05  コマンド(応答とは、NetGenesis4が送ってくるものを指す)
            ブロードキャスト( to 255.255.255.255 )
            41 01 NetGenesis4検索
            81 01 NetGenesis4応答(この時にも内蔵時計はセットされます)
            41 0B NetGenesis4時刻設定
            81 0B NetGenesis4時刻設定応答
            41 04 ファームウェア情報取得要求 「動作設定」を押したときにこれが送信されている。
            81 04 ファームウェア情報取得応答

            ここから先は通常アドレス( to 192.168.xx.xxなど )            
            01 6A シリアル1接続要求
            81 6A シリアル1接続応答
            01 6B シリアル2接続要求
            81 6B シリアル2接続応答
            
            01 68 シリアル1切断要求
            81 68 シリアル1切断応答
            01 69 シリアル2切断要求
            81 69 シリアル2切断応答
            
            01 64 シリアル1状態確認
            81 64 シリアル1状態応答
            01 65 シリアル2状態確認
            81 65 シリアル2状態応答

            02 01 設定受信要求
            82 01 設定受信応答
             
            03 01 設定更新要求
            83 01 設定更新応答

            03 02 設定更新確定要求
            83 02 設定更新確定応答

            Firmware Version : 2.204 以降のみ
            01 6E シリアル1 デフォルト・ダイヤルアウト接続先設定要求
            81 6E シリアル1 デフォルト・ダイヤルアウト接続先設定応答
            01 6F シリアル2 デフォルト・ダイヤルアウト接続先設定要求
            81 6F シリアル2 デフォルト・ダイヤルアウト接続先設定応答

 +06 +07  データ長(+10以降のデータ長)

 
 +08〜+0F  00 ( Firmware Ver.1.x、または、NetGenesis4への要求データの場合)

 ( Firmware Ver.2.x、かつ、NetGenesis4からの応答データの場合)
  Ver.2.xでは、NetGenesis4の設定内容取得の際に流れるデータが暗号化されています。
  接続状態などの応答データは暗号化されません。設定モードのデータのみ暗号化されます。
  +08〜+09  00 01              多分、データが暗号化されているというフラグ
  +0A〜+0B  xx xx              暗号キー。この値を元に暗号を解く。
  +0C〜+0F  00 00 00 00

 +10〜     データ
            応答データの場合、+10〜+13にNetGenesis4のIPアドレスが入る(例:C0 A8 00 01)
            ただし、デフォルト・ダイヤルアウト接続先設定ではIPアドレスが入らない。

手動接続の流れ

●セットアップユーティリティ NWG4set Ver.1.25
1.セットアップユーティリティ起動する。(NetGenesis4検索コマンド送信)
2.NetGenesis4が応答する。(この時 NetGenesis4 の時計がセットされる)
3.「手動 接続」ボタンを押す。(接続要求コマンド送信)
4.NetGenesis4が状態(作業中、接続、切断)を応答する。
5.状態が作業中の場合、状態確認コマンド送信して4へ戻る。
6.完了
●セットアップユーティリティ NWGset Ver.2.04 , 2.47 , 2.62 , 2.70 , 2.71
1.セットアップユーティリティ起動する。(NetGenesis4検索コマンド送信)
2.NetGenesis4が応答する。(この時 NetGenesis4 の時計がセットされる)
3.シリアル1の状態確認を行う。
4.NetGenesis4が応答する。
5.シリアル2の状態確認を行う。
6.NetGenesis4が応答する。
7.「手動 接続」ボタンを押す。(接続要求コマンド送信)
8.NetGenesis4が状態(作業中、接続、切断)を応答する。
9.状態が作業中の場合、状態確認コマンド送信して8へ戻る。
10.完了

NetGenesis4検索

以下の32バイトを 255.255.255.255 へブロードキャストする。
00000 : 00 01 00 00 41 01 00 10 - 00 00 00 00 00 00 00 00   ................
00010 : 4E 57 47 34 20 43 68 65 - 63 6B 00 11 00 1B 00 3A   NWG4 Check......
                                        ~~1~~ ~~2~~ ~~3~~
1〜3には時分秒を入れる。例では 17時27分58秒 となっている。

NetGenesis4からは以下のデータが戻ってくる。

00000 : 00 01 00 00 81 01 00 28 - xx xx xx xx 00 00 00 00   ................
00010 : C0 A8 00 01 FF FF FF 00 - 4E 65 74 47 65 6E 65 73   ........NetGenes
        ~~~~~~~~1~~ ~~~~~~~~2~~   ~~~~~~~~~~~~~~~~~~~~3~~
00020 : 69 73 34 00 00 00 00 00 - 00 00 00 00 00 00 00 00   is4.............
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00030 : 00 00 00 00 00 00 00 00                             ........
        ~~~~~~~~~~~~~~~~~~~~~~~

1 NetGenesis4のIPアドレス 192.168.0.1
2 NetGenesis4のサブネットマスク 255.255.255.0
3 NetGenesis4にセットされた名前 "NetGenesis4"
  (32バイト固定長。不足分は 00 で埋まる。)

接続要求、切断要求

以下の20バイトを、目的のNetGenesis4のIPアドレスへ送信する。
切断要求の場合は、接続要求のところのコマンドを変えるだけ。
00000 : 00 02 00 00 01 6A 00 04 - 00 00 00 00 00 00 00 00   ................
        ~~1~~       ~~2~~ ~~3~~
00010 : C0 A8 00 01                                         ....
        ~~~~~~~~4~~

1 シーケンス番号(多分なんでもいい)
2 シリアル1接続要求コマンド
3 データ長4バイト
4 NetGenesis4のIPアドレス 192.168.0.1

NetGenesis4からは以下のデータが戻ってくる。

00000 : 00 02 00 00 81 6A 00 06 - xx xx xx xx 00 00 00 00   ................
00010 : C0 A8 00 01 00 04                                   ......
        ~~~~~~~~1~~ ~~2~~

1 NetGenesis4のIPアドレス 192.168.0.1
2 動作状態 00 00 ポート未使用
       00 01 専用線接続
       00 02 RASサーバ接続 (接続応答時のみ)
       00 03 切断状態
       00 04 WAIT状態
       00 05 接続状態

NetGenesis4からは以下のデータが戻ってくる。(Firmware Version : 2.204 以降)

00000 : 00 02 00 00 81 6A 00 40 - xx xx xx xx 00 00 00 00   ................
00010 : C0 A8 00 01 00 04 00 00 - 80 00 00 01 00 00 00 00   ................
        ~~~~~~~~1~~ ~~2~~ ~~3~~   ~~~~~4~~~~~ ~~5~~
00020 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
00030 : 49 53 50 20 31 2D 31 00 - 00 00 00 00 00 00 00 00   ISP 1-1.........
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00040 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~6~~

1 NetGenesis4のIPアドレス 192.168.0.1
2 動作状態 00 00 ポート未使用
       00 01 専用線接続
       00 02 RASサーバ接続 (接続応答時のみ)
       00 03 切断状態
       00 04 WAIT状態
       00 05 接続状態

3 00 00 (たとえ接続中でも)
4 接続モード(状態確認コマンド参照)
5 ダイヤルアウト接続先(00 00 〜 00 03)
6 接続先名称

状態確認

以下の20バイトを、目的のNetGenesis4のIPアドレスへ送信する。
00000 : 00 03 00 00 01 64 00 04 - 00 00 00 00 00 00 00 00   ................
        ~~1~~       ~~2~~ ~~3~~
00010 : C0 A8 00 01                                         ....
        ~~~~~~~~4~~

1 シーケンス番号(多分なんでもいい)
2 シリアル1状態確認コマンド
3 データ長4バイト
4 NetGenesis4のIPアドレス 192.168.0.1

以下の24バイトを、目的のNetGenesis4のIPアドレスへ送信する。(Firmware Version : 2.313 以降)
この要求を F/W 2.21 へ投げても正しく F/W 2.21 の応答が戻る。他のF/Wは不明だが問題ないと思われる。
セットアップユーティリティ V2.70 は F/W バージョンを確認せずにこの要求を使用している。

00000 : 00 03 00 00 01 64 00 08 - 00 00 00 00 00 00 00 00   ................
        ~~1~~       ~~2~~ ~~3~~
00010 : C0 A8 00 01 00 00 00 00                             ........
        ~~~~~~~~4~~ ~~5~~ ~~6~~

1 シーケンス番号(多分なんでもいい)
2 シリアル1状態確認コマンド
3 データ長8バイト
4 NetGenesis4のIPアドレス 192.168.0.1
5 コマンドフラグ。
   00 00 通常検索
   00 01 送受信バイト数を0リセットする
6 不明。設定変えなくても変化することがある。(下記値は確認した例)
   00 00 とりあえずこれで問題ないと思う。
   09 00
   12 00
   23 00
   1A 00
   68 65
   AE A5
   E4 77

NetGenesis4からは以下のデータが戻ってくる。

00000 : 00 03 00 00 81 64 00 08 - xx xx xx xx 00 00 00 00   ................
00010 : C0 A8 00 01 00 04 00 00                             ........
        ~~~~~~~~1~~ ~~~~~~~~2~~

1 NetGenesis4のIPアドレス 192.168.0.1
2 動作状態 00 00 00 00  ポート未使用
       00 03 00 00  切断状態
       00 04 00 00  WAIT状態
       00 05 ?? ??  接続状態 09 00(FW2.204より前)02 80(FW2.204)
                         どうやら接続DTEスピード(FW2.204以降)

NetGenesis4からは以下のデータが戻ってくる。(Firmware Version : 2.204 以降)

00000 : 00 03 00 00 81 64 00 A8 - xx xx xx xx 00 00 00 00   ................
00010 : C0 A8 00 01 00 03 00 00 - 80 00 00 01 00 00 00 00   ................
        ~~~~~1~~~~~ ~~~~~2~~~~~   ~~~~~~~~3~~ ~~4~~
00020 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
00030 : 00 01 00 01 00 00 00 00 - 49 53 50 20 31 2D 31 00   ........ISP 1-1.
        ~~5~~ ~~6~~ ~~7~~ ~~8~~   ~~~~~~~~~~~~~~~~~~~~~~~
00040 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00050 : 00 00 00 00 00 00 00 00 - 49 53 50 20 31 2D 32 00   ........ISP 1-2.
        ~~~~~~~~~~~~~~~~~~~~9~~
00060 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
00070 : 00 00 00 00 00 00 00 00 - 49 53 50 20 31 2D 33 00   ........ISP 1-3.
00080 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
00090 : 00 00 00 00 00 00 00 00 - 52 41 53 20 31 2D 31 00   ........RAS 1-1.
000A0 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
000B0 : 00 00 00 00 00 00 00 00                             ........

1 NetGenesis4のIPアドレス 192.168.0.1
2 動作状態
3 接続モード(各ビットで意味を持つ)
   bit 0        ISP・端末型ダイヤルアップIP接続
   bit 1        RASクライアントIP接続
   bit 2        RASサーバIP接続
   bit 3        ISP・LAN型ダイヤルアップIP接続
   bit 4        ISP・専用線IP接続
   bit 5        専用線IP接続
   bit 6〜7     未使用
   bit 8        LAN型ダイヤルアップIP接続
   bit 9〜30    未使用
   bit31        デフォルトゲートウェイ

  接続モード(例)
   80 00 00 01 ISP・端末型ダイヤルアップIP接続
   80 00 00 02 RASクライアントIP接続
   80 00 00 05 ISP・端末型ダイヤルアップIP接続とRASサーバIP接続を併用
   80 00 00 06 RASクライアントIP接続とRASサーバIP接続を併用
   00 00 00 04 RASサーバIP接続
   80 00 00 08 ISP・LAN型ダイヤルアップIP接続
   00 00 01 00 LAN型ダイヤルアップIP接続
   80 00 00 10 ISP・専用線IP接続
   00 00 00 20 専用線IP接続

4 デフォルト・ダイヤルアウト接続先(00 00 〜 00 03)
5 接続先1が有効(00 01)/無効(00 00)
6 接続先2
7 接続先3
8 接続先4
9 接続先1名称(最大32文字の文字列。00で終了。残りは不定値)

以下、接続先名称 + 00 00 の繰り返し

NetGenesis4からは以下のデータが戻ってくる。(Firmware Version : 2.313 以降)

00000 : 00 03 00 00 81 64 01 64 - xx xx xx xx 00 00 00 00   ................
00010 : C0 A8 00 01 00 00 17 70 - 00 02 00 00 00 00 00 00   ................
        ~~~~~~~~1~~ ~~~~~~~13~~   ~~14~       ~~~~~~~~~~~
00020 : 00 00 00 03 80 00 00 01 - 00 04 00 01 00 01 00 01   ................
        ~~15~ ~~2~~ ~~~~~~~~3~~   ~~16~ ~~4~~ ~~5~~ ~~6~~
00030 : 00 01 00 00 49 53 50 20 - 31 2D 32 00 00 00 00 00   ....ISP 1-1.....
        ~~7~~ ~~8~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00040 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00050 : 00 00 00 00 49 53 50 20 - 31 2D 32 00 00 00 00 00   ....ISP 1-2.....
        ~~~~~~~~9~~
00060 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
00070 : 00 00 00 00 49 53 50 20 - 31 2D 33 00 00 00 00 00   ....ISP 1-3.....
00080 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
00090 : 00 00 00 00 52 41 53 20 - 31 2D 31 00 00 00 00 00   ....RAS 1-1.....
000A0 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
000B0 : 00 00 00 00 00 30 00 04 - 43 4F 4E 4E 4E 43 54 20   ........CONNECT 
                    ~~20~ ~~19~   ~~~~~~~~~~~~~~~~~~~~~~~
000C0 : 36 34 30 30 30 0D 0A 00 - xx xx xx xx xx xx xx xx   64000...........
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~10~~
000D0 : xx xx xx xx xx xx xx xx - xx xx xx xx xx xx xx xx   ................
000E0 : xx xx xx xx xx xx xx xx - xx xx xx xx xx xx xx xx   ................
000F0 : xx xx xx xx xx xx xx xx - xx xx xx xx xx xx xx xx   ................
00100 : xx xx xx xx xx xx xx xx - xx xx xx xx xx xx xx xx   ................
00110 : xx xx xx xx xx xx xx xx - xx xx xx xx xx xx xx xx   ................
00120 : xx xx xx xx xx xx xx xx - xx xx xx xx xx xx xx xx   ................
00130 : xx xx xx xx xx xx xx xx - 00 00 00 00 ## ## ## ##   ................
                                        ~~11~ ~~~~~~~12~~
00140 : xx xx xx xx xx xx xx xx - xx xx xx xx xx xx xx xx   ................
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00150 : xx xx xx xx xx xx xx xx - xx xx xx xx xx xx xx xx   ................
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~21~~
00160 : 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
        ~~~~~~~17~~ ~~~~~~~18~~   ~~~~~~~~22~ ~~~~~~~~23~
00170 : 00 00 00 00                                         ........
        ~~~~~~~~24~

1 NetGenesis4のIPアドレス 192.168.0.1
2 動作状態
   00 00 ポート未使用
   00 03 切断状態
   00 04 WAIT状態
   00 05 発呼による接続状態
   00 21 着呼による接続状態
3 接続モード(各ビットで意味を持つ)
4 デフォルト・ダイヤルアウト接続先(00 00 〜 00 03)
5 接続先1が有効(00 01)/無効(00 00)
6 接続先2
7 接続先3
8 接続先4
9 接続先1名称(最大32文字の文字列。00で終了。残りは不定値)
  以下、接続先名称 + 00 00 の繰り返し
10 DCE速度
  TA/モデムの CONNECT や、CARRIER の文字列。00で終了。残りは不定値
  最大128文字。接続状態の時のみ有効。
11 IPアドレスフラグ
   00 00  無効
   00 01  有効
12 接続中または最後に接続したときのルータIPアドレス
   ISPまたはRASサーバから渡されたIPアドレス
13 接続してからの時間(1/10秒単位)のようです。(例は10分00秒)
  また、切断してもカウントは続きます。
14 時計モード
   00 00  無効(電源投入直後など)
   00 01  NetGenesis自前の時計が有効
   00 02  SNTPサーバが有効
15 時間情報
   時計モード 00 01 の時 2バイトずつで時分秒
   時計モード 00 02 の時 最初の2バイトがSNTP時間情報、残りは00
                  1900/01/01 00:00:00 からの経過秒数?謎
16 回線の種類
   00 01 アナログ:プッシュ回線(トーン)
   00 02 アナログ:ダイヤル回線(パルス)
   00 04 ISDN:INSネット64回線
   00 05 ISDN:専用線
   00 06 アナログ:専用線(発信側)
   00 07 アナログ:専用線(着信側)
17 接続してから送信した総バイト数
18 接続してから受信した総バイト数
19 DTE速度
   00 02 460800 ビット/秒
   00 04 230400
   00 08 115200
   00 10  57600
   00 18  38400
   00 20  28800
   00 30  19200
   00 40  14400
   00 60   9600
   00 C0   4800
   01 80   2400
   03 00   1200
20 RS232C信号線情報。
   bit 7 CD信号のON/OFF
  (例)
   00 00 設定直後など
   00 30 未接続
   00 B0 接続中とか
21 RASサーバIP接続のとき接続したユーザID。
   最大32バイトで、終わりは 00。
   接続状態の時のみ有効。
   ※全くの未確認です。公式ライブラリの説明書から推測。

22 送信パケット数
23 受信パケット数
24 エラーパケット数
   ※このパケット数は全くの未確認です。公式ライブラリの説明書から推測。
    ダイヤルアップ時には 00 なので、RASの場合のみと思われる。


※ xx は不定値のように見えるが。。。。。。

デフォルト・ダイヤルアウト接続先設定要求

Firmware Version : 2.204 以降のみ
以下の18バイトを、目的のNetGenesis4のIPアドレスへ送信する。
00000 : 00 04 00 00 01 6E 00 02 - 00 00 00 00 00 00 00 00   ................
        ~~1~~       ~~2~~ ~~3~~
00010 : 00 01                                               ..
        ~~4~~

1 シーケンス番号(多分なんでもいい)
2 シリアル1 デフォルト・ダイヤルアウト接続先設定要求コマンド
3 データ長2バイト
4 接続先番号(00 00 〜 00 03)

NetGenesis4からは以下のデータが戻ってくる。

00000 : 00 04 00 00 81 6E 00 02 - xx xx xx xx 00 00 00 00   ................
00010 : 00 00                                               ........
        ~~1~~

1 00 00 設定完了
  00 01 エラー(接続中のため変更不可)
  00 02 エラー(0〜3以外の値を指定した)
  00 03 エラー(未登録の番号を指定した)
  00 04 エラー(ISP・端末型ダイヤルアップ/RASクライアントIP接続でない)

時刻設定

以下の26バイトを 255.255.255.255 へブロードキャストする。
設定モードで、更新するときにこのデータが流れてました。
実験から、ブロードキャストでなく、特定アドレスでも時刻設定されるようです。
00000 : 00 40 00 00 41 0B 00 0A - 00 00 00 00 00 00 00 00   ................
00010 : C0 A8 00 01 00 11 00 2E - 00 11                     ................
        ~~~~1~~~~~~ ~~2~~ ~~3~~   ~~4~~
1 NetGenesis4のIPアドレス 192.168.0.1
2〜4には時分秒を入れる。例では 17時46分17秒 となっている。

NetGenesis4からは以下のデータが戻ってくる。

00000 : 00 40 00 00 81 0B 00 04 - xx xx xx xx 00 00 00 00   ................
00010 : C0 A8 00 01                                         ....

ファームウェア情報

以下の20バイトを 255.255.255.255 へブロードキャストする。
実験から、ブロードキャストでなく、特定アドレスでも動作するようです。
00000 : 00 02 00 00 41 04 00 04 - 00 00 00 00 00 00 00 00   ................
00010 : C0 A8 00 01                                         ....
        ~~~~1~~~~~~
1 NetGenesis4のIPアドレス 192.168.0.1

NetGenesis4からは以下のデータが戻ってくる。

00000 : 00 02 00 00 81 04 00 1A - xx xx xx xx 00 00 00 00   ................
00010 : C0 A8 00 01 00 02 20 40 - 00 10 38 ## ## ## 00 00   ................
        ~~~~~1~~~~~ ~~~~~2~~~~~   ~~~~~~~~3~~~~~~~~
00020 : ?? ?? ?? ?? ?? ?? ?? ?? - ?? ??                     ..........

1 NetGenesis4のIPアドレス 192.168.0.1
2 F/Wバージョン情報
   bit 0〜15  マイナーバージョン
   bit16〜31  メジャーバージョン

  F/Wバージョン情報(例)
   00 01 11 01 F/W V1.1101
   00 02 00 20 F/W V2.002
   00 02 00 22 F/W V2.0022
   00 02 10 40 F/W V2.104
   00 02 20 40 F/W V2.204
   00 02 21 00 F/W V2.21
   00 02 31 30 F/W V2.313

3 NetGenesis4のMACアドレス
? 謎

設定モード

複雑すぎて手におえません。あきらめました。
Firmware Ver.2.xでは、データが暗号化されるようになりました。
暗号化のアルゴリズムは簡単な作りでしたが、公開するつもりはありません。


C言語版サンプルプログラム

めちゃくちゃ手抜きなC言語版サンプルプログラム(1999.03.12)です。
手動接続専用です。
DISCONNECTをdefineしてコンパイルすれば、手動切断になります。
% cc nwg4con.c -o nwg4con
% cc nwg4con.c -o nwg4discon -DDISCONNECT
TurboLinux2.0J,TurboLinux3.0Jで動作確認を行いました。

これはNetGenesis4検索をやりません。したがってNetGenesis4の時刻設定もされません。
テレホ時間帯無切断設定にしている人は、このままだと危険です。
昼間なのに、NetGenesis4のタイマは深夜になっていたりすると自動切断されなくなります。
常用するならば時刻設定をやるようにプログラムを改造しましょう。

また、接続コマンドを送信するだけで状態確認をしていません。
TAやモデムのランプを見て確認しましょう。
常用するならば状態確認をするようにプログラムを改造しましょう。

CGI版サンプルプログラム(Perl)

発想を変えて、CGIとして接続・切断・状態確認・時刻設定コマンドを発行するプログラムを作ってみました。
LAN環境にCGIが可能なWebサーバが立ち上がっていれば、他のマシンのブラウザから使えます。
もちろんローカルマシンに、PerlとWebサーバをインストールしてもかまいません。
以下の環境での動作確認が取れています。
ぱむさんがMacPerlでの動作を確認してくれました。ありがとうございます。
  • TurboLinux3.0J : Perl5 + apache
  • WinNT/98 : AcrivePerl build509 (or Perl for Win32 build316) + Microsoft Personal Web Server
  • WinNT/98 : AcrivePerl build509 (or Perl for Win32 build316) + an httpd
  • MacOS8.1J : MacPerl5.2.0r4(E) + Microsoft Personal Web Server
  • TurboLinux3.0Jの最低限のhttpd(apache)設定方法のページを用意しました。


    CGI版サンプルプログラム(旧)のダウンロード Perl4風(Perl5でしか動作確認はしていません)
    (1999.02.06)
    状態確認の方法を修正
    (1999.02.05)
    gethostbynameはMacPerlなどで問題となるようなので使用しないように修正
    時刻設定のデータ生成部を修正
    CGI版サンプルプログラムのダウンロード Perl5
    (1999.02.06)
    use Socket; を使うバージョン(こっちの方がスマート)
    CGI版サンプルプログラム2のダウンロード
    (1999.07.31)
    Firmware Version : 2.313 対応
    (1999.03.06)
    Perl for Win32 build316 で動作しなくなっていたので修正
    (1999.02.26)
    接続先変更処理変更
    受信データダンプ機能追加
    (1999.02.21)
    送信コマンドのデータサイズが一部おかしかったのを修正
    (1999.02.13)
    接続・切断コマンド送信後に状態確認を行うよう変更
    (1999.02.10)
    Firmware 2.204以降のマルチアカウント機能に対応

    NetGenesis4シミュレータ(ソフト開発者向け)

    NetGenesis4の動作を真似て応答コマンドを送信するプログラムです。
    詳しくはこちらをご覧ください。


    NetGenesis情報ページへ戻る


    このページに関するお問い合わせは、下記アドレスへ。
    E-mail: anb@y7.net
    Copyright (C) 1998-1999 M.Okamura 7N1ANB