(57)【特許請求の範囲】
【請求項１】
複数のネットワークインターフェースを備えるネットワーク機器と通信可能な管理装置であって、
前記ネットワーク機器との通信で用いられている該ネットワーク機器のＩＰアドレスがＩＰｖ４のアドレスか、ＩＰｖ６のアドレスかを判定する判定手段と、
前記判定手段によりＩＰｖ４のアドレスであると判定された際に、前記ネットワーク機器でＩＰｖ４のＩＰアドレスに対応して管理されているネットワークインターフェースを識別するための値を取得するための要求を、前記ネットワーク機器のＩＰアドレスを指定して、当該ネットワーク機器に対して実行する第１の要求手段と、
前記判定手段によりＩＰｖ６のアドレスであると判定された際に、前記ネットワーク機器でテーブルを用いて管理されたＩＰｖ４及びＩＰｖ６の複数のＩＰアドレスのそれぞれに対応する複数のネットワークインターフェースのそれぞれを識別するための複数の値を取得するための１以上の要求を、当該ネットワーク機器に対して実行する第２の要求手段と、
前記第２の要求手段による要求に対する前記ネットワーク機器からの応答に含まれる、前記ＩＰｖ６のＩＰアドレスに対応するネットワークインターフェースを識別するための値を特定する特定手段と、
前記第１の要求手段による要求に対する前記ネットワーク機器からの応答に含まれる値、または、前記特定手段により特定された値を指定して、前記ネットワーク機器に対して、ＭＡＣアドレスを取得するための要求を実行する第３の要求手段と、を有することを特徴とする管理装置。
【請求項２】
前記第１の要求手段による要求、または前記第２の要求手段による要求で、前記ネットワーク機器からネットワークインターフェースを識別するための値を取得できなかった場合に、前記ネットワーク機器の複数のネットワークインターフェースのそれぞれを識別するための複数の値を取得するための複数の要求を、当該ネットワーク機器に対して実行する第４の要求手段と、を有し、
前記特定手段は、前記第４の要求手段による要求に対する前記ネットワーク機器からの応答に含まれる複数の値の中から、ループバックアドレスに対応する値を除くいずれかの値を特定することを特徴とする請求項１に記載の管理装置。
【請求項３】
複数のネットワークインターフェースを備えるネットワーク機器との通信で用いられている該ネットワーク機器のＩＰアドレスがＩＰｖ４のアドレスか、ＩＰｖ６のアドレスかを判定する判定手段と、
前記判定手段によりＩＰｖ４のアドレスであると判定された際に、前記ネットワーク機器でＩＰｖ４のＩＰアドレスに対応して管理されているネットワークインターフェースを識別するための値を取得するための要求を、前記ネットワーク機器のＩＰアドレスを指定して、当該ネットワーク機器に対して実行する第１の要求手段と、
前記判定手段によりＩＰｖ６のアドレスであると判定された際に、前記ネットワーク機器でテーブルを用いて管理されたＩＰｖ４及びＩＰｖ６の複数のＩＰアドレスのそれぞれに対応する複数のネットワークインターフェースのそれぞれを識別するための複数の値を取得するための１以上の要求を、当該ネットワーク機器に対して実行する第２の要求手段と、
前記第２の要求手段による要求に対する前記ネットワーク機器からの応答に含まれる、前記ＩＰｖ６のＩＰアドレスに対応するネットワークインターフェースを識別するための値を特定する特定手段と、
前記第１の要求手段による要求に対する前記ネットワーク機器からの応答に含まれる値、または、前記特定手段により特定された値を指定して、前記ネットワーク機器に対して、ＭＡＣアドレスを取得するための要求を実行する第３の要求手段、
としてコンピュータを機能させるためのプログラム。
【請求項４】
複数のネットワークインターフェースを備えるネットワーク機器と通信可能な管理装置における方法であって、
前記ネットワーク機器との通信で用いられている該ネットワーク機器のＩＰアドレスがＩＰｖ４のアドレスか、ＩＰｖ６のアドレスかを判定する判定工程と、
前記判定工程でＩＰｖ４のアドレスであると判定された際に、前記ネットワーク機器でＩＰｖ４のＩＰアドレスに対応して管理されているネットワークインターフェースを識別するための値を取得するための要求を、前記ネットワーク機器のＩＰアドレスを指定して、当該ネットワーク機器に対して実行する第１の要求工程と、
前記判定工程でＩＰｖ６のアドレスであると判定された際に、前記ネットワーク機器でテーブルを用いて管理されたＩＰｖ４及びＩＰｖ６の複数のＩＰアドレスのそれぞれに対応する複数のネットワークインターフェースのそれぞれを識別するための複数の値を取得するための１以上の要求を、当該ネットワーク機器に対して実行する第２の要求工程と、
前記第２の要求工程での要求に対する前記ネットワーク機器からの応答に含まれる、前記ＩＰｖ６のＩＰアドレスに対応するネットワークインターフェースを識別するための値を特定する特定工程と、
前記第１の要求工程での要求に対する前記ネットワーク機器からの応答に含まれる値、または、前記特定工程で特定された値を指定して、前記ネットワーク機器に対して、ＭＡＣアドレスを取得するための要求を実行する第３の要求工程と、を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ネットワークに接続された装置を管理する技術に関する。
【背景技術】
【０００２】
従来から、ネットワークに接続可能な画像処理装置や各種端末などを被管理装置としてネットワークを介して管理する管理装置が存在する。管理装置は、それら被管理装置の物理アドレス（ＭＡＣアドレス）を識別子として管理を行う場合がある。ＭＡＣアドレスを管理する場合、管理装置は被管理装置との通信に使用した論理アドレス（ＩＰアドレス）を元にＭＡＣアドレスを取得することができる。
【０００３】
管理装置は、ＭＡＣアドレスの取得において、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）のＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）と呼ばれる管理情報で定義されたｉｐＡｄｄｒＴａｂｌｅの要素（ｉｐＡｄＥｎｔＩｆＩｎｄｅｘ）が利用できる。それによって、ＩＰｖ４については、通信中のＩＰアドレスに対応するネットワークインターフェースのインデックス値が特定でき、ＭＡＣアドレスを取得することが可能である。
【０００４】
ここで、被管理装置には複数のネットワークインターフェースを有する場合がある。特許文献１には、複数のネットワークインターフェースを有するＭＦＰが、外部装置からのｉｆＴｙｐｅとインデックス値を指定したリクエストに応じて、いずれかのネットワークインターフェースに対応するＭＩＢ情報を応答する技術が開示されている。とくに、特許文献１では、ＭＦＰが、インデックスで特定値（１）を指定したリクエストを受付けた場合に、該リクエストで利用しているネットワークインターフェースのＭＩＢ情報を、当該特定の値に対応する情報として、応答する技術が開示されている。
【０００５】
なお、ＲＦＣ４２９３で、ＩＰｖ４並びにＩＰｖ６のＩＰアドレスのそれぞれについて、ネットワークインターフェースのインデックス値を管理するためのｉｐＡｄｄｒｅｓｓＴａｂｌｅの１つの要素（ｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘ）の定義が行われている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−８１４３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
現状、ネットワーク上に存在する被管理装置は、有線、無線の通信に対応するため、複数のネットワークインターフェースを備えている場合がある。管理装置は、被管理装置を特定するための情報としてＭＡＣアドレスを用いる場合があるが、そのような場合は、被管理装置が通信に用いるネットワークインターフェースを特定したうえで、ＭＡＣアドレスを取得することが求められる。
【０００８】
ここで、前述の特許文献１で開示される被管理装置であるＭＦＰは、管理装置からの特定値（１）を指定したリクエストに対して、特定値に依らず、該リクエストで利用しているネットワークインターフェースのＭＩＢ情報を応答する。しかしながら、一般的な被管理装置は、管理装置から指定されたインデックスに対応するＭＩＢ情報を単に応答するものである。よって、より汎用的な多種の被管理装置を管理するために、被管理装置のそれぞれが通信に用いるネットワークインターフェースのＭＡＣアドレスを取得するためには、管理装置が該ネットワークインターフェースを予め特定する必要がある。
【０００９】
被管理装置はＩＰｖ４、ＩＰｖ６の何れか任意のアドレスタイプで通信を行っている。また、現状のネットワーク上には、前述のｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘを含むＭＩＢに対応した被管理装置と、未対応の被管理装置とが混在している。
【００１０】
そこで、本発明は、管理装置が、このような様々の被管理装置のそれぞれに対して、通信に用いられているネットワークインターフェースを適切に特定することができる手法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、例えば本発明は、複数のネットワークインターフェースを備えるネットワーク機器と通信可能な管理装置であって、前記ネットワーク機器との通信で用いられている該ネットワーク機器のＩＰアドレスがＩＰｖ４のアドレスか、ＩＰｖ６のアドレスかを判定する判定手段と、前記判定手段によりＩＰｖ４のアドレスであると判定された際に、前記ネットワーク機器でＩＰｖ４のＩＰアドレスに対応して管理されているネットワークインターフェースを識別するための値を取得するための要求を、前記ネットワーク機器のＩＰアドレスを指定して、当該ネットワーク機器に対して実行する第１の要求手段と、前記判定手段によりＩＰｖ６のアドレスであると判定された際に、前記ネットワーク機器でテーブルを用いて管理されたＩＰｖ４及びＩＰｖ６の複数のＩＰアドレスのそれぞれに対応する複数のネットワークインターフェースのそれぞれを識別するための複数の値を取得するための１以上の要求を、当該ネットワーク機器に対して実行する第２の要求手段と、前記第２の要求手段による要求に対する前記ネットワーク機器からの応答に含まれる、前記ＩＰｖ６のＩＰアドレスに対応するネットワークインターフェースを識別するための値を特定する特定手段と、前記第１の要求手段による要求に対する前記ネットワーク機器からの応答に含まれる値、または、前記特定手段により特定された値を指定して、前記ネットワーク機器に対して、ＭＡＣアドレスを取得するための要求を実行する第３の要求手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、管理装置が、様々の被管理装置のそれぞれに対して、通信に用いられているネットワークインターフェースを適切に特定することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明のネットワーク構成と各機器のハードウェア構成の例を示す図である。
【図２】本発明のソフトウェアモジュールの概念図である。
【図３】ＳＮＭＰパケットの構造を示す図である。
【図４】管理装置１０１での処理全体を説明するためのフローチャートを示す図である。
【図５】ＩＰｖ４におけるｉｆＩｎｄｅｘの値の選定処理を説明するためのフローチャートを示す。
【図６】ＩＰｖ６におけるｉｆＩｎｄｅｘの値の選定処理を説明するためのフローチャートを示す。
【図７】１つのＯＩＤに対する値を取得する際の処理を説明するためのフローチャートを示す。
【図８】複数のＯＩＤに対する値を取得する際の処理を説明するためのフローチャートを示す。
【図９】実施例２における、ＩＰｖ６におけるｉｆＩｎｄｅｘの値の選定処理を説明するためのフローチャートを示す。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について図面を用いて説明する。
まず、図１を用いて本発明を実施するためのシステム全体の構成及び、各機器のハードウェア構成を説明する。図１の１０１は管理装置であり、１０２は被管理装置であり、１０３はネットワークである。管理装置１０１は、ネットワーク１０３を介して、被管理装置１０２を含む種々のネットワーク機器と通信可能である。被管理装置１０２は、印刷装置やネットワークカメラなどの画像処理装置、各種ネットワーク端末などである。また、不図示だが、管理装置１０１は、ネットワーク１０３を介して、複数の被管理装置１０２と通信し、管理可能である。
【００１５】
管理装置１０１は、内部にＣＰＵ２０１、メモリ２０２、ＨＤＤ２０３、入力装置２０４、出力装置２０５、ネットワークインターフェースカード（ＮＩＣ）２０６を有し、それぞれがバス２０７で接続されている。
【００１６】
ＣＰＵ２０１は、ＨＤＤ２０３に保存された本発明に係るプログラム及びデータをメモリ２０２にロードし、メモリ２０２にロードされたプログラムの実行を行う。入力装置２０４はユーザーからの入力を取得する。また出力装置２０５により、プログラムの操作に必要な情報の表示を行う。ネットワークインターフェース２０６はネットワーク１０３を介した通信を制御し、例えば被管理装置１０２から情報を取得するための信号の送信などを行う。
【００１７】
被管理装置１０２は、内部にＣＰＵ２１１、メモリ２１２、ＨＤＤ２１３、入出力装置２１４、ネットワークインターフェース２１５を有し、それぞれがバス２１７で接続されている。
【００１８】
ＣＰＵ２１１は、ＨＤＤ２１３に保存された管理装置１０１からの情報取得要求に応答するためのプログラムをメモリ２１２にロードし、メモリ２１２にロードされたプログラムの実行を行う。被管理装置１０２にＨＤＤ２１３が装着されていない場合には、メモリ２１２がその役割を担う。ネットワークインターフェースカード（ＮＩＣ）２１５は、ネットワーク１０３を介した通信を制御し、例えば管理装置１０２からの要求信号の受信及び応答信号の送信を行う。入出力装置２１４は、ユーザー入力を受けつける。また、入出力装置２１４は、ユーザーに示すための情報表示を行う。また、被管理装置１０２には、故障などのステータスを監視するための各種センサ（不図示）を備えるものとする。さらに、被管理装置１０２が画像処理装置である場合には、画像処理用のエンジン（印刷部、撮影部など）や、エンジンコントローラーを、ハードウェアとして備えるものとする。
【００１９】
なお、被管理装置１０２は、有線ＬＡＮ接続と無線ＬＡＮ接続などのために、複数のＮＩＣ２１５（以降、ネットワークインターフェースとも呼ぶ）を有する場合がある。さらに、物理的にはネットワークインターフェースが１つであっても、自装置に対して通信するための仮想的なネットワークインターフェースが存在する場合もある。被管理装置１０２が複数のネットワークインターフェースを有している場合に、ネットワーク１０３とは別のネットワーク１０４に接続する場合もある。
【００２０】
図２は、本発明を実施するためのソフトウェアモジュールの概念図である。本図で例示する各モジュールは、概念的なものであって、管理装置１０１、被管理装置１０２で本発明に係るプログラムを実行した際の処理の主体としている。
【００２１】
管理装置１０１は、データ格納部３０１と、取得部３０２、判定部３０３、及びＵＩ制御部３０４で構成される。
【００２２】
データ格納部３０１は、メモリ２０２もしくはＨＤＤ２０３といった格納領域に対して、被管理装置１０２から取得したデータなどを格納する。例えば、表１に示すデバイスリストのような１つ以上の被管理装置１０２のデータを格納する。表１に示すように、ＭＡＣアドレスなどが未取得である機器も管理することができる。
【００２３】
【表１】
0006579935.tif 000002
取得部３０２は、被管理装置１０２から、多種のプロトコルにより情報を取得するためのモジュールである。例えば、ＳＮＭＰを利用した情報取得では、ＳＮＭＰに準拠した取得要求のパケットを生成し、ネットワークインターフェース２０６を介してパケットの送信を行う。また、取得部３０２は、ネットワークインターフェース２０６を介して、被管理装置１０２から応答パケットを受信し、パケットからデータを取り出す。
【００２４】
判定部３０３は、取得部３０２が取得したデータに基づく判定処理を実行する。例えば、判定部３０３は、ＩＰアドレスに対応するＭＡＣアドレスを特定するための判定処理を実行する。この判定結果は、データ格納部３０１によりメモリ２０２もしくはＨＤＤ２０３といった格納領域に対して格納される。ＵＩ制御部３０４は、出力装置２０５に表示する情報を生成する。また、ＵＩ制御部３０４は、入力装置２０４での入力情報を取得する。
【００２５】
被管理装置１０２は、データ格納部３１１、応答部３１２、ＵＩ制御部３１３で構成される。
【００２６】
データ格納部３１１は、被管理装置１０２に固有のデータなどの格納の制御を行う。被管理装置１０２は、ＭＩＢでデータを管理している。応答部３１２は、格納されたデータを元に管理装置１０１からの取得要求に対する応答パケットを生成し、複数のネットワークインターフェースのいずれかを用いた該応答パケットの送信を行う。ＵＩ制御部３１３は、入出力装置２１４で表示する画面の生成及びユーザー入力情報の取得を行う。
【００２７】
ＳＮＭＰは、ネットワーク機器の情報の管理、取得などが可能なプロトコルである。具体的には、被管理装置１０２を含むネットワーク機器内のＭＩＢと呼ばれる管理情報の集合に対して、オブジェクト識別子（ＯＩＤ）と呼ばれるツリー構造の識別子を指定してアクセスすることができる。
【００２８】
図３は、取得部３０２が送受信するパケットの構造の例である。
【００２９】
４０１は、ＳＮＭＰのバージョンを示し、ＳＮＭＰのバージョン１の場合には値は０である。４０２は、コミュニティ名であり、管理装置１０１からの送信パケットに含まれるコミュニティ名４０２と被管理装置１０２が有するコミュニティ名が一致する場合にのみ、被管理装置１０２は管理装置１０１に応答を返す。
【００３０】
４０３は、ＰＤＵタイプと呼ばれる値であり、取得か応答かによって値が異なる。また、取得の場合にも、ＧｅｔＲｅｑｕｅｓｔ（０ｘＡ０）またはＧｅｔＮｅｘｔＲｅｑｕｅｓｔ（０ｘＡ１）がある。ＰＤＵタイプ４０３には、パケットで指定したＯＩＤに対する値を取得する場合には０ｘＡ０で、指定したＯＩＤの次のＯＩＤの値を取得する場合には０ｘＡ１が設定される。応答の場合にはＰＤＵタイプ４０３は０ｘＡ２である。
【００３１】
４０４は、要求毎に取得部３０２が生成する識別子であり、要求とその応答については同じ値をとる。４０５は、エラー情報であり、取得のパケットでは空であり、応答のパケットでエラーを示す場合にはエラー情報の値が入る。４０６は、オブジェクト識別子（ＯＩＤ）であり、４０７は、ＯＩＤに対する値である。取得要求パケットではＯＩＤに対する値４０７は空で、応答パケットでは被管理装置１０２の応答部３１２が値４０７に、被管理装置１０２の対応するデータを挿入する。取得要求パケットにおいて、ＯＩＤ４０６を複数指定することが可能である。
【００３２】
例えば、取得要求で、ＰＤＵタイプ４０３に０ｘＡ１（ＧｅｔＮｅｘｔＲｅｑｕｅｓｔ）を、ＯＩＤ４０６にｉｆＴｙｐｅに対応する”１．３．６．１．２．１．２．２．１．３”を指定すると、その応答としてＯＩＤ４０６が”１．３．６．１．２．１．２．２．１．３．１”である値４０７がネットワーク機器から取得できる。さらに、取得要求で、ＰＤＵタイプ４０３に０ｘＡ１（ＧｅｔＮｅｘｔＲｅｑｕｅｓｔ）を、ＯＩＤ４０６に”１．３．６．１．２．１．２．２．１．３．１”を指定すると、その応答としてＯＩＤ４０６が“１．３．６．１．２．１．２．２．１．３．２”  である値４０７がネットワーク機器から取得できる。
【００３３】
図４は、管理装置１０１での処理を説明するためのフローチャートである。図４で示す処理は、管理装置１０１のＣＰＵ２０１が本発明に係るプログラムを実行することで実現される。
【００３４】
被管理装置１０２には、１つ以上のネットワークインターフェース２１５があり、ネットワークインターフェース毎にＭＡＣアドレスが割り振られている。管理装置１０１は、図４で示す処理で通信中のＩＰアドレスに対応するいずれかのネットワークインターフェースのＭＡＣアドレスを特定する。
【００３５】
管理装置１０１は、被管理装置１０２のＩＰアドレスをデバイスリストとして格納し、管理しているものとする。デバイスリストでは、ＭＡＣアドレスが未だ不明な被管理装置１０２の情報も管理されることになる。なお、ＵＩ制御部３０４が提供する画面を介してユーザーが入力したＩＰアドレスを取り出し、デバイスリストに対して格納してもよい。
【００３６】
まず、Ｓ１０１において、取得部３０２は、デバイスリストからＩＰアドレスを取り出す。ここでは、通信中の被管理装置１０２との該通信で利用されているＩＰアドレスが、通信パケットなど該通信で用いたデータ内から、取り出されているものとする。
【００３７】
Ｓ１０２において、取得部３０２は、Ｓ１０１で取り出したＩＰアドレスがＩＰｖ６アドレスか否かの判定を行う。ＩＰｖ４アドレスかＩＰｖ６アドレスかの判定は以下のデータ長、データ形式の違いにより行う。ＩＰｖ４アドレスは３２ビット長であり、８ビットごとにピリオドで区切り１０進数で表記する。また、ＩＰｖ６アドレスは１２８ビットであり、１６ビットごとにコロンで区切り１６進数で表記するという規則がある。なお、ＩＰｖ６アドレスの表記として、コロンで区切られた部分がすべて０となり、前記の条件を満たす部分が２回以上連続する場合には、コロンを２つ続けて表記することで省略が可能である。しかし、データ長で判断する場合には、ＩＰｖ６アドレスを省略しない表示形式で判断を行う。
【００３８】
Ｓ１０２で、ＩＰｖ６アドレスと判定された場合にはＳ１０４に進む。そして、Ｓ１０２で、ＩＰｖ６アドレスと判定されなかった場合、つまりＩＰｖ４アドレスと判断された場合にはＳ１０３に進む。Ｓ１０３での処理の詳細は、図５を用いて後述する。また、Ｓ１０４での処理の詳細は、図６を用いて後述する。
【００３９】
ここで、図６では、判定処理に、ｉｐＡｄｄｒｅｓｓＴａｂｌｅの１つの要素であるｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘを利用する。ｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘは、ＩＰｖ４並びにＩＰｖ６のＩＰアドレスのそれぞれについて、ネットワークインターフェースのインデックス値に係る定義が存在する。しかしながら、監視対象となる被管理装置の中には、比較的新しいＭＩＢの定義であるｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘに対応していない機器も存在する。そこで、本実施例においては、Ｓ１０２でＩＰｖ４アドレスと判断された場合には、後述の図５で示すようなｉｐＡｄｄｒＴａｂｌｅの１つの要素であるｉｐＡｄＥｎｔＩｆＩｎｄｅｘを利用した判定処理を行うこととする。従って、監視対象が予め新しいＭＩＢに対応している機種のみが存在しているとわかっている場合など、特定の条件においては、Ｓ１０１で取り出したＩＰアドレスがＩＰｖ４アドレスであろうとＩＰｖ６アドレスであろうと、図６に示すｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘを利用する判定処理を実行することも可能である。
【００４０】
Ｓ１０３及びＳ１０４では、Ｓ１０１で取り出したＩＰアドレスに対応するネットワークインターフェースに関する値、つまり、ＭＩＢのｉｆＩｎｄｅｘの値が選定される。
【００４１】
ここで、“ｉｆＩｎｄｅｘ”の値は、被管理装置１０２の１つ以上のネットワークインターフェースのそれぞれに対して割り当てられる固有の値となっている。ｉｆＩｎｄｅｘは、表２で示すＭＩＢの一部であるｉｆＴａｂｌｅのインデックス値でもある。ｉｆＴａｂｌｅはｉｆＴｙｐｅ，  ｉｆＤｅｓｃｒ，  ｉｆＰｈｙｓＡｄｄｒｅｓｓなどの要素を含む。ｉｆＴａｂｌｅは各被管理装置１０２で、記憶、管理されている。
【００４２】
【表２】
0006579935.tif 000003
Ｓ１０５で、判定部３０３は、Ｓ１０３とＳ１０４でｉｆＩｎｄｅｘの値の取得に成功したか否かを判断する。ここで、取得に成功していた場合にはＳ１０６に進み、失敗していた場合にはＳ１０８に進む。Ｓ１０６では、ｉｆＩｎｄｅｘの値を用いたＭＡＣアドレスの取得処理が行われる。ＭＡＣアドレスの取得処理の詳細は、図７を用いて、後述する。
【００４３】
Ｓ１０７で、判定部３０３は、Ｓ１０６でＭＡＣアドレスを取得できたか否かを判定する。ここで、取得できたと判定した場合にはＳ１０９に進み、取得できなかったと判定した場合にはＳ１０８に進む。Ｓ１０８では、データ格納部３０１は、デバイスリスト内のＳ１０１で取り出したＩＰアドレスに対応するＭＡＣアドレスの空き領域の範囲でランダムな値もしくはシーケンシャルな値としてＭＡＣアドレスを生成する。Ｓ１０９では、データ格納部３０１は、デバイスリストにＭＡＣアドレスの書き込みを行う。
【００４４】
図５を用いて、前述のＳ１０３に係る処理の詳細を説明する。本処理は、ＩＰｖ４におけるｉｆＩｎｄｅｘの値を選定するための処理を示している。
【００４５】
Ｓ２０１で、取得部３０２は、Ｓ１０１で取り出したＩＰアドレスを指定して、ｉｐＡｄｄｒＴａｂｌｅに対してｉｆＩｎｄｅｘの値を取得するためのパケットの生成を行う。ｉｐＡｄｄｒＴａｂｌｅ（表３）は、被管理装置１０２で管理されたＭＩＢの一部の情報を含むデータテーブルである。ここで生成されるパケットにおいてｉｐＡｄＥｎｔＡｄｄｒでＩＰアドレスを指定して、対応するｉｐＡｄＥｎｔＩｆＩｎｄｅｘの値を取得することができる。ここで、ｉｐＡｄＥｎｔＩｆＩｎｄｅｘの値は、ｉｆＩｎｄｅｘと同値である。Ｓ２０１での値の取得処理の流れは、図７のフローチャートを用いて後述する。
【００４６】
【表３】
0006579935.tif 000004
Ｓ２０２で、判定部３０３は、Ｓ２０１でｉｐＡｄＥｎｔＩｆＩｎｄｅｘの値を取得できたか否かを判定する。ｉｐＡｄＥｎｔＩｆＩｎｄｅｘの値を取得できたと判定された場合にはＳ２０３に進み、取得失敗していた場合にはＳ２０４に進む。
【００４７】
Ｓ２０３で、判定部３０３は、ｉｐＡｄＥｎｔＩｆＩｎｄｅｘの値を、ｉｆＩｎｄｅｘの値として選定する。そして、ｉｆＩｎｄｅｘの値の取得に成功したとして、図４に示すＳ１０５の処理に進む。
【００４８】
Ｓ２０４で、取得部３０２は、例えばｈｒＤｅｖｉｃｅＩＤなどのＯＩＤ４０６を指定して、被管理装置１０２の機種情報の取得処理を実行する。Ｓ２０４での値の取得処理の流れは、図７のフローチャートを用いて後述する。
【００４９】
Ｓ２０５で、判定部３０３は、Ｓ２０４での処理の結果、機種情報を取得できたか否かを判定する。機種情報が取得できた場合にはＳ２０６に進み、取得できなかった場合にはＳ２０８に進む。Ｓ２０６で、判定部３０３は、Ｓ２０４で取得した機種情報が、予め管理装置１０１で管理された特定の機種を示すか否かを判定する。ここで、特定の機種であると判定された場合にはＳ２０７に進み、特定の機種ではないと判定された場合にはＳ２０８に進む。Ｓ２０７では、判定部３０３は、ｉｆＩｎｄｅｘを“１”として選定する。そして、ｉｆＩｎｄｅｘの値の取得に成功したとして、図４に示すＳ１０５の処理に進む。
【００５０】
なお、特定の機種とは、例外的に用いる登録情報であって、事前に管理装置１０１と通信するインターフェースに対応するインデックス値をデフォルトで“１”としている被管理装置の種類を示すものである。ただし、この種の被管理装置もプラットフォームや管理設定の変更など、様々な要因で変更され得るため、本実施例においては、特定の機種の情報を例外的に用いるものとしている。
【００５１】
Ｓ２０８で、取得部３０２は、ｉｆＴｙｐｅの値を取得する処理を行う。Ｓ２０８での取得処理の流れは、図８のフローチャートを用いて後述する。Ｓ２０９で、判定部３０３は、ｉｆＴｙｐｅの取得に成功したか否かを判定する。ここで、取得に成功したと判定した場合にはＳ２１０に進む。Ｓ２０９で取得に失敗したと判定した場合は、ｉｆＩｎｄｅｘの値の取得に失敗したとして、図４に示すＳ１０５の処理に進む。
【００５２】
Ｓ２１０で、取得部３０２は、取得した複数のｉｆＴｙｐｅの値から、“ｓｏｆｔｗａｒｅＬｏｏｐｂａｃｋ（２４）”以外の先頭の値（ループバックアドレスに対応する値）を、ｉｆＩｎｄｅｘの値として選定する。そして、ｉｆＩｎｄｅｘの値の取得に成功したとして、図４に示すＳ１０５の処理に進む。なお、Ｓ２１０では、ｉｆＴｙｐｅがｅｔｈｅｒｎｅｔＣｓｍａｃｄ（６）である値を、ｉｆＩｎｄｅｘの値とする場合としてもよい。この値は、イーサネット（登録商標）接続のネットワークインターフェースを識別するための値を示す。
【００５３】
図６を用いて、前述のＳ１０４に係る処理の詳細を説明する。本処理は、ＩＰｖ６におけるｉｆＩｎｄｅｘの値を選定するための処理を示している。
【００５４】
被管理装置１０２では、表４で示すＭＩＢの一部であるｉｐＡｄｄｒｅｓｓＴａｂｌｅが記憶、管理されている。このテーブルに対して、ｉｐＡｄｄｒｅｓｓＡｄｄｒＴｙｐｅとｉｐＡｄｄｒｅｓｓＡｄｄｒを指定することで、ｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘを取得することができる。さらにｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘの値は、ｉｆＩｎｄｅｘと同値であり、このｉｆＩｎｄｅｘを用いてＭＡＣアドレスを取得することができる。このテーブルは、ＩＰｖ４、ＩＰｖ６の双方のアドレスに対応している。ｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘは、“ｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘ．ｉｐＡｄｄｒｅｓｓＡｄｄｒＴｙｐｅ．ｉｐＡｄｄｒｅｓｓＰｒｅｆｉｘ．（ＩＰアドレス）“という形式のＯＩＤになっている。また、”ｉｐＡｄｄｒｅｓｓＰｒｅｆｉｘ．“は省略可能である。
【００５５】
【表４】
0006579935.tif 000005
Ｓ３０１で、取得部３０２は、ｉｐＡｄｄｒｅｓｓＴａｂｌｅの各要素（ｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘ）の値を取得するためのパケットの生成を行い、取得要求として該パケットの送信を行う。Ｓ３０１での値の取得処理の流れは、図８のフローチャートを用いて後述する。
【００５６】
Ｓ３０２では、取得部３０２は、１以上のｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘの値が取得できたか否かの判定を行う。ｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘの値を取得できたと判定した場合にはＳ３０３に進み、取得できなかったと判定した場合にはＳ３０９に移行する。Ｓ３０９、Ｓ３１０、Ｓ３１１の処理は、前述したＳ２０８〜Ｓ２１０と同様の処理であり、その説明は省略する。
【００５７】
Ｓ３０３において、判定部３０３は、Ｓ３０１で取得された情報から、Ｎ個目のＯＩＤとその値を取り出す。このときＮの初期値は１である。Ｓ３０１で取得された情報に、前述の表４の各行で示す１以上のＯＩＤとその値が含まれている。
【００５８】
Ｓ３０４で、判定部３０３は、Ｓ３０３で取り出された情報が示すアドレスタイプがＩＰｖ６アドレスであるか否かを判定する。具体的には、ＯＩＤに含まれるｉｐＡｄｄｒｅｓｓＡｄｄｒＴｙｐｅの値が“２”である場合にはＩＰｖ６アドレスであることを意味する。Ｓ３０４の判定の結果で２と判定した場合には、Ｓ３１２に移行する。アドレスタイプがＩＰｖ６アドレスである場合にはＳ３０５に進み、ＩＰｖ６アドレスでない場合にはＳ３１２に進む。
【００５９】
Ｓ３０５で、判定部３０３は、Ｓ３０３で取り出された情報が示すＩＰアドレスが、前述のＳ１０１で取り出した通信中のＩＰアドレスと一致するか否かを判定する。ここでは、前述したｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘのＯＩＤ（ｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘ．ｉｐＡｄｄｒｅｓｓＡｄｄｒＴｙｐｅ．ｉｐＡｄｄｒｅｓｓＰｒｅｆｉｘ．（ＩＰアドレス）“）における、（ＩＰアドレス）部分と、前述のＳ１０１で取り出した通信中のＩＰアドレスとが比較される。なお、”ｉｐＡｄｄｒｅｓｓＰｒｅｆｉｘ．“部分は省略可能なので、ｉｐＡｄｄｒｅｓｓＡｄｄｒＴｙｐｅ．以降のデータサイズが１６バイトより大きいか否かをチェックすることで、ＩＰアドレス部分を特定してもよい。Ｓ３０５の判定の結果、一致すると判定した場合にはＳ３０６に進み、一致しないと判定された場合にはＳ３０７に進む。
【００６０】
Ｓ３０６で、判定部３０３は、Ｓ３０３で取り出された情報のｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘの値を、ｉｆＩｎｄｅｘの値として選定する。この処理により、通信中のアドレスに対応するｉｆＩｎｄｅｘの値の特定が行われることになる。そして、ｉｆＩｎｄｅｘの値の取得に成功したとして、図４に示すＳ１０５の処理に進む。
【００６１】
Ｓ３０７で、判定部３０３は、Ｓ３０１で取得された情報に含まれる全行を処理したか否かを判定する。Ｓ３１２で全て処理したと判定した場合には、取得失敗として、図４に示すＳ１０５の処理に進む。全て処理していないと判定した場合にはＳ３０８に移行する。Ｓ３０８で、判定部３０３は、Ｎを１だけカウントアップして、Ｓ３０３に戻る。
【００６２】
図７は、１つのＯＩＤ４０６の指定に対する値４０７を取得する際の処理を説明するためのフローチャートを示す。この処理は、前述したＳ１０６のＭＡＣアドレス取得処理や、前述したＳ２０１のｉｐＡｄＥｎｔＩｆＩｎｄｅｘの値の取得処理、前述したＳ２０４の機種情報の取得処理などに対応する。
【００６３】
Ｓ４０１で、取得部３０２は、１つのＯＩＤを指定して、所望の値を取得するための送信パケットの生成を行い、該パケットを送信することで被管理装置１０２に対して取得要求を行う。Ｓ１０６のＭＡＣアドレス取得処理では、ＯＩＤ４０６として、Ｓ１０３とＳ１０４で取得に成功したｉｆＩｎｄｅｘの値が指定される。具体的には、ｉｆＴａｂｌｅのｉｆＰｈｙｓＡｄｄｒｅｓｓの値を取得するために、“１．３．６．１．２．１．２．２．１．６．（ｉｆＩｎｄｅｘの値）”といった指定が行われる。また、Ｓ２０１のｉｐＡｄＥｎｔＩｆＩｎｄｅｘの値の取得処理では、ＯＩＤ４０６として、通信中のＩＰアドレスが指定される。具体的には、“１．３．６．１．２．１．４．２０．２．（ＩＰアドレス）”といった指定が行われる。
【００６４】
Ｓ４０２において、取得部３０２は、被管理装置１０２から応答があったか否かを判断する。被管理装置１０２からの応答の待ち時間は、予め設定された時間である。Ｓ４０２で応答があったと判断した場合にはＳ４０３に進み、無かった場合にはＳ４０４に進む。
【００６５】
Ｓ４０３で、取得部３０２は、被管理装置１０２から受信した応答パケットにエラー情報が含まれるか否かを判定し、エラー情報が含まれると判定した場合には取得失敗として処理を終了する。Ｓ４０３で、エラー情報が含まれない判定した場合には、取得成功として、処理を終了する。ここでは、前述したＳ１０６から本処理が実行された場合にはＭＡＣアドレスが取得され、前述したＳ２０１から本処理が実行された場合にはｉｐＡｄＥｎｔＩｆＩｎｄｅｘの値が取得されたことになる。
【００６６】
Ｓ４０４で、取得部３０２は、Ｓ４０１での取得要求を一定回数以上、繰り返して実行したかを判定する。ここで、一定回数以上実行したと判定した場合には、取得失敗として、処理を終了する。一定回数以上実行していないと判定した場合には、Ｓ４０５に進む。Ｓ４０５では、取得要求の処理回数のカウントを１つ増やし、Ｓ４０６に進む。Ｓ４０６では、規定の一定時間だけ待機して、Ｓ４０１に処理を戻す。
【００６７】
図８は、複数のＯＩＤに対する値を取得する際の処理を説明するためのフローチャートを示す。前述のＳ２０８及びＳ３０９でのｉｆＴｙｐｅの値の取得処理や、Ｓ３０１でのｉｐＡｄＥｎｔＩｆＩｎｄｅｘの値の取得処理として、実行される処理である。ともに、テーブル構造になった複数のＯＩＤの値を、ＧｅｔＮｅｘｔＲｅｑｕｅｓｔを繰り返すことで、取得することになる。
【００６８】
前述したように、ｉｆＴｙｐｅの値を取得する際には、ＯＩＤ４０６にｉｆＴｙｐｅに対応する”１．３．６．１．２．１．２．２．１．３”を指定してＧｅｔＮｅｘｔＲｅｑｕｅｓｔを実行して、被管理装置１０２からの応答により、１つ目のインデックス値を取得する。さらに、それ以降は、応答に含まれるインデックスを指定したＧｅｔＮｅｘｔＲｅｑｕｅｓｔを繰り返し実行することで、被管理装置１０２から複数のｉｆＴｙｐｅのインデックス値を取得する。ｉｐＡｄＥｎｔＩｆＩｎｄｅｘの値の取得処理についても、同様の処理が実行される。
【００６９】
Ｓ５０１〜Ｓ５０６の処理については、図７のＳ４０１〜Ｓ４０６と同様のためその説明を省略する。
【００７０】
Ｓ５０７で、取得部３０２は、取得対象のＯＩＤについてすべての取得処理が終了したかを判定する。例えば、ｉｆＴｙｐｅのようなテーブル構造の複数のＯＩＤの値を取得している際には、上述のＧｅｔＮｅｘｔＲｅｑｕｅｓｔの応答として“１．３．６．１．２．１．２．２．１．３．ｘ”（ｘは自然数）以外の値が応答された場合には、該応答より前までの応答で、ｉｆＴｙｐｅに該当する全てのＯＩＤの値の取得が終了したことを判断できる。Ｓ５０７で、すべての取得が終了したと判定した場合には、取得成功として、図５や図６における次の処理に進む。Ｓ５０７で、すべての値の取得が終了していないと判断した場合にはＳ５０８に進む。
【００７１】
Ｓ５０８で、取得部３０２は、Ｓ５０５でカウントされていた処理回数をリセットする。Ｓ５０９で、取得部３０２は、前述したように、次の取得すべきＯＩＤの値を取得するために、直前の被管理装置１０２からの応答に含まれるインデックスを指定する。その後、Ｓ５０１に戻り、該指定に従うＧｅｔＮｅｘｔＲｅｑｕｅｓｔのパケットが生成され、取得要求として被管理装置１０２に送信される。
【００７２】
（実施例２）
実施例２は、実施例１の図６を用いて説明した処理の変形例を、図９を用いて説明する。本実施例と実施例１との相違点は、図６の処理に代わって図９で示す処理が実行されるだけである。実施例１と同様の部分については、その説明は省略する。
【００７３】
図９は、ＩＰｖ６におけるｉｆＩｎｄｅｘの値の選定処理を説明するためのフローチャートを示す。図６と同様の処理については、同じ符号を付与している。また、処理内容は同じため、ここでの説明は省略する。
【００７４】
Ｓ６０１において、取得部３０２は、ｉｐＡｄｄｒｅｓｓＡｄｄｒＴｙｐｅにＩＰｖ６を示す値（２）、ｉｐＡｄｄｒｅｓｓＡｄｄｒにＳ１０１で取得した通信中のＩＰアドレスを指定したｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘの値の取得処理を実行する。ここでは、該指定により、ｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘの値が１つに特定されることになる。なお、この取得処理の詳細は、図７のフローチャートに従う。
【００７５】
図９の処理の場合には、図６と比べて、Ｓ３０３〜Ｓ３０５、Ｓ３０７〜Ｓ３０８の処理が省略されることになる。ただし、前述したように、被管理装置１０２の実装によっては、ｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘについては、”ｉｐＡｄｄｒｅｓｓＰｒｅｆｉｘ．“の部分が省略可能である。よって、Ｓ６０１では、取得要求の対象となった被管理装置１０２の実装で”ｉｐＡｄｄｒｅｓｓＰｒｅｆｉｘ．“の部分が省略されている場合には、図７のＳ４０３でエラーと判断される可能性がある。
【００７６】
したがって、被管理装置１０２の実装に依存せずにｉｐＡｄｄｒｅｓｓＩｆＩｎｄｅｘを利用して、通信中のネットワークインターフェースを示すｉｆＩｎｄｅｘの値の選定するためには、図６で説明した処理を実行する必要がある。
【００７７】
（他の実施例）
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
【００７８】
ここで、本発明は、上述した実施形態の機能を実現する１以上のソフトウェア（プログラム）を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の１以上のコンピュータ（ＣＰＵやＭＰＵ等）によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピュータにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路（例えば、ＡＳＩＣ）によっても、本発明は実現可能である。
【符号の説明】
【００７９】
１０１  管理装置
１０２  被管理装置
１０３  ネットワーク
【図１】
0006579935.tif 000006
【図２】
0006579935.tif 000007
【図３】
0006579935.tif 000008
【図４】
0006579935.tif 000009
【図５】
0006579935.tif 000010
【図６】
0006579935.tif 000011
【図７】
0006579935.tif 000012
【図８】
0006579935.tif 000013
【図９】
0006579935.tif 000014