(57)【要約】【課題】  対象デバイスのための対象ＩＰアドレスを迅速に決定すること。【解決手段】  端末装置１０の制御部３０は、自己のＩＰアドレス２７のネットワークアドレス部の値と、乱数等によって生成された値と、を組み合わせることによって、仮の候補ＩＰアドレスを生成する。制御部３０は、テーブル２３から、外部のＩＰアドレス割り当てサーバが割り当て可能なＩＰアドレスの範囲を特定する。制御部３０は、仮の候補ＩＰアドレスが上記のＩＰアドレスの範囲に含まれない場合に、仮の候補ＩＰアドレスを候補ＩＰアドレスとして決定する。制御部３０は、候補ＩＰアドレスが他のデバイスに設定されていないことが確認される場合に、候補ＩＰアドレスを対象ＩＰアドレスとして決定する。【選択図】  図１
2011077596.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内で利用されるべき対象デバイスのための対象ＩＰアドレスを決定するＩＰアドレス決定装置であって、
外部のＩＰアドレス割り当てサーバが割り当て可能なＩＰアドレスの範囲を特定する特定部と、
前記ＩＰアドレス決定装置自身に設定されている特定のＩＰアドレスと、前記ＩＰアドレス決定装置自身に設定されている特定のサブネットマスクと、に基づいて、前記ＩＰアドレスの範囲に含まれない前記対象ＩＰアドレスを決定する決定部と、
を備えるＩＰアドレス決定装置。
【請求項２】
前記決定部は、
前記特定のＩＰアドレスと、前記特定のサブネットマスクと、に基づいて、前記ＩＰアドレスの範囲に含まれない候補ＩＰアドレスを生成する生成部と、
前記ネットワーク内の他のデバイスに前記候補ＩＰアドレスが設定されているのか否かを確認する確認部と、備え、
前記決定部は、前記他のデバイスに前記候補ＩＰアドレスが設定されていないことが確認される場合に、前記候補ＩＰアドレスを前記対象ＩＰアドレスとして決定する、請求項１に記載のＩＰアドレス決定装置。
【請求項３】
前記生成部は、
前記特定のＩＰアドレスのネットワークアドレス部の値と、前記特定のＩＰアドレスのホストアドレス部の値とは異なる特定の値と、を組み合わせることによって、仮の候補ＩＰアドレスを生成し、
前記仮の候補ＩＰアドレスが前記ＩＰアドレスの範囲に含まれない場合に、前記仮の候補ＩＰアドレスを前記候補ＩＰアドレスとして決定する、請求項２に記載のＩＰアドレス決定装置。
【請求項４】
前記生成部は、乱数を用いて、前記特定の値を決定する、請求項３に記載のＩＰアドレス決定装置。
【請求項５】
前記生成部は、
前記特定のサブネットマスクの値が第１の所定値よりも小さい第１の場合に、前記乱数を用いて、前記特定の値を決定し、
前記特定のサブネットマスクの値が前記第１の所定値よりも大きい第２の場合に、前記乱数を用いずに、前記特定の値を決定する、請求項４に記載のＩＰアドレス決定装置。
【請求項６】
前記生成部は、
前記第２の場合において、前記特定のＩＰアドレスの前記ホストアドレス部の値が第２の所定値よりも大きい場合に、前記第２の所定値よりも小さい値を、前記特定の値として決定し、
前記第２の場合において、前記特定のＩＰアドレスの前記ホストアドレス部の値が前記第２の所定値よりも小さい場合に、前記第２の所定値よりも大きい値を、前記特定の値として決定する、請求項５に記載のＩＰアドレス決定装置。
【請求項７】
前記第２の所定値よりも小さい前記値は、前記仮の候補ＩＰアドレスのホストアドレス部の値として採り得る値の範囲のうち、最小値から順に選択される値であり、
前記第２の所定値よりも大きい前記値は、前記仮の候補ＩＰアドレスのホストアドレス部の値として採り得る値の範囲のうち、最大値から順に選択される値である、請求項６に記載のＩＰアドレス決定装置。
【請求項８】
前記決定部によって決定される前記対象ＩＰアドレスを前記対象デバイスに供給する供給部をさらに備える、請求項１から７のいずれか一項に記載のＩＰアドレス決定装置。
【請求項９】
前記特定部は、前記ＩＰアドレスの範囲が予め登録されているテーブルから、前記ＩＰアドレスの範囲を読み込むことによって、前記ＩＰアドレスの範囲を特定する、請求項１から８のいずれか一項に記載のＩＰアドレス決定装置。
【請求項１０】
ネットワーク内で利用されるべき対象デバイスのためのデバイスドライバがインストールされる端末装置であって、
前記対象デバイスから、前記対象デバイスに現在設定されているＩＰアドレスの設定手法を示す設定手法情報を取得する情報取得部と、
前記設定手法情報が、前記対象デバイスのＩＰアドレスが変更される可能性が高い特定の設定手法を示す場合であり、かつ、前記対象デバイスのデバイス名に対応する対応ＩＰアドレスを名前解決によって取得することができない場合に、前記対象デバイスのための前記対象ＩＰアドレスを決定する請求項１から９のいずれか一項に記載のＩＰアドレス決定装置と、
前記対象ＩＰアドレスに対応するポートを生成するポート生成部と、
前記デバイスドライバをインストールするインストール部と、を備える端末装置。
【請求項１１】
ネットワーク内で利用されるべき対象デバイスのための対象ＩＰアドレスを決定するＩＰアドレス決定装置を実現するためのコンピュータプログラムであって、
外部のＩＰアドレス割り当てサーバが割り当て可能なＩＰアドレスの範囲を特定する特定処理と、
前記ＩＰアドレス決定装置自身に設定されている特定のＩＰアドレスと、前記ＩＰアドレス決定装置自身に設定されている特定のサブネットマスクと、に基づいて、前記ＩＰアドレスの範囲に含まれない前記対象ＩＰアドレスを決定する決定処理と、
をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書によって開示される技術は、ネットワーク内で利用されるべき対象デバイスのための対象ＩＰアドレスを決定する技術に関する。
【背景技術】
【０００２】
ネットワーク内の各デバイスにＩＰアドレスを割り当てるＩＰアドレス割り当てサーバ（例えばＤＨＣＰ（Dynamic Host Configuration Protocol）サーバ、ＢＯＯＴＰ（Bootstrap Protocol）サーバ等）が広く知られている。例えば、特許文献１には、ＤＨＣＰサーバとして機能するＩＰ電話装置が開示されている。ＩＰ電話装置は、自己のＤＨＣＰサーバが割り当て可能なＩＰアドレスの範囲を記憶している。ＩＰ電話装置は、上記のＩＰアドレスの範囲内から１個のＩＰアドレスを選択し、当該１個のＩＰアドレスを他のデバイスに割り当てる。これにより、上記の他のデバイスにＩＰアドレスが設定される。また、ＩＰ電話装置は、自己に設定されるべきＩＰアドレスを決定すべき際に、自己のＤＨＣＰサーバが割り当て可能な上記のＩＰアドレスの範囲に含まれない候補ＩＰアドレスを生成する。これにより、ＩＰ電話装置は、自己のＤＨＣＰサーバによって他のデバイスに割り当てられている可能性があるＩＰアドレス以外の候補ＩＰアドレスを生成することができる。次いで、ＩＰ電話装置は、候補ＩＰアドレスがネットワーク内の他のデバイスに設定されているのか否かを確認する確認処理を実行する。候補ＩＰアドレスが他のデバイスに設定されていないことが確認される場合に、ＩＰ電話装置は、候補ＩＰアドレスを自己のＩＰアドレスとして設定する。一方において、候補ＩＰアドレスが他のデバイスに設定されていることが確認される場合に、ＩＰ電話装置は、新たな候補ＩＰアドレスの生成と上記の確認処理とを再び実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１６６０６９号公報
【特許文献２】特開平８−２２３２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＩＰ電話装置内のＤＨＣＰサーバと異なる外部のＩＰアドレス割り当てサーバがネットワーク内に存在し、当該外部のＩＰアドレス割り当てサーバが、ネットワーク内の各デバイスにＩＰアドレスを割り当てる可能性がある。この場合、ＩＰ電話装置内のＤＨＣＰサーバが割り当て可能なＩＰアドレスの範囲に含まれない候補ＩＰアドレスが生成されても、当該候補ＩＰアドレスが、外部のＩＰアドレス割り当てサーバによって他のデバイスに既に割り当てられている可能性がある。この場合、上述したように、上記の確認処理において、候補ＩＰアドレスが他のデバイスに設定されていることが確認されるために、ＩＰ電話装置は、新たな候補ＩＰアドレスの生成と上記の確認処理とを再び実行しなければならない。即ち、特許文献１の技術では、ＩＰ電話装置のためのＩＰアドレスを決定する過程において、外部のＩＰアドレス割り当てサーバによって他のデバイスに既に割り当てられている候補ＩＰアドレスが生成され得るために、ＩＰ電話装置のためのＩＰアドレスを決定するのに長時間を要する可能性がある。
【０００５】
本明細書では、対象ＩＰアドレスのための対象ＩＰアドレスを迅速に決定し得る技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書では、ネットワーク内で利用されるべき対象デバイスのための対象ＩＰアドレスを決定するＩＰアドレス決定装置を開示する。ＩＰアドレス決定装置は、特定部と決定部とを備える。特定部は、外部のＩＰアドレス割り当てサーバが割り当て可能なＩＰアドレスの範囲を特定する。決定部は、ＩＰアドレス決定装置自身に設定されている特定のＩＰアドレスと、ＩＰアドレス決定装置自身に設定されている特定のサブネットマスクと、に基づいて、ＩＰアドレスの範囲に含まれない対象ＩＰアドレスを決定する。
【０００７】
上記の構成によると、ＩＰアドレス決定装置は、外部のＩＰアドレス割り当てサーバが割り当て可能なＩＰアドレスの範囲を特定することができるために、上記のＩＰアドレスの範囲を用いて、対象ＩＰアドレスを決定することができる。例えば、ＩＰアドレス決定装置は、上記のＩＰアドレスの範囲に含まれない候補ＩＰアドレスを生成することができる。この場合、外部のＩＰアドレス割り当てサーバによって他のデバイスに既に割り当てられている候補ＩＰアドレスが生成されるのを抑制することができるために、例えば、候補ＩＰアドレスを用いて上記の確認処理を実行しても、候補ＩＰアドレスが他のデバイスに設定されていることが確認される可能性が低い。従って、対象デバイスのための対象ＩＰアドレスを迅速に決定することができる。この例で説明したように、上記のＩＰアドレスの範囲を用いれば、対象デバイスのための対象ＩＰアドレスを迅速に決定し得る。しかも、上記の構成によると、ＩＰアドレス決定装置は、上記の特定のＩＰアドレス（即ち自己のＩＰアドレス）と、上記の特定のサブネットマスク（即ち自己のサブネットマスク）と、に基づいて、対象ＩＰアドレスを決定することができる。従って、例えば、上記の特定のＩＰアドレスに一致するＩＰアドレス（以下では「第１のＩＰアドレス」と呼ぶ）が、対象ＩＰアドレスとして決定されるのを抑制することができる。また、例えば、上記の特定のＩＰアドレス及び上記の特定のサブネットマスクによって決まるネットワークアドレス部の値と異なるネットワークアドレス部の値を含むＩＰアドレス（以下では「第２のＩＰアドレス」と呼ぶ）が、対象ＩＰアドレスとして決定されるのを抑制することができる。仮に、上記の第１又は第２のＩＰアドレスが対象デバイスに設定されると、対象デバイスは、ＩＰアドレス決定装置と適切に通信することができない。上記の構成によると、例えば、上記の第１又は第２のＩＰアドレスが対象ＩＰアドレスとして決定されるのを抑制することができるために、ＩＰアドレス決定装置は、自身と適切に通信を実行し得るＩＰアドレスを、対象ＩＰアドレスとして決定することができる。
【０００８】
決定部は、生成部と確認部とを備えていてもよい。生成部は、上記の特定のＩＰアドレスと、上記の特定のサブネットマスクと、に基づいて、上記のＩＰアドレスの範囲に含まれない候補ＩＰアドレスを生成してもよい。確認部は、ネットワーク内の他のデバイスに候補ＩＰアドレスが設定されているのか否かを確認してもよい。決定部は、他のデバイスに候補ＩＰアドレスが設定されていないことが確認される場合に、候補ＩＰアドレスを対象ＩＰアドレスとして決定してもよい。この構成によると、外部のＩＰアドレス割り当てサーバによって他のデバイスに既に割り当てられている候補ＩＰアドレスが生成されるのを抑制することができるために、他のデバイスに候補ＩＰアドレスが設定されていないことが確認される可能性が高い。このために、ＩＰアドレス決定装置は、対象デバイスのための対象ＩＰアドレスを迅速に決定することができる。
【０００９】
生成部は、上記の特定のＩＰアドレスのネットワークアドレス部の値と、上記の特定のＩＰアドレスのホストアドレス部の値とは異なる特定の値と、を組み合わせることによって、仮の候補ＩＰアドレスを生成してもよい。生成部は、仮の候補ＩＰアドレスが上記のＩＰアドレスの範囲に含まれない場合に、仮の候補ＩＰアドレスを候補ＩＰアドレスとして決定してもよい。上記の構成によると、ＩＰアドレス決定装置は、上記の特定の値を含む仮の候補ＩＰアドレスを生成すれば、上記の特定のＩＰアドレスに一致する仮の候補ＩＰアドレス（即ち上記の第１のＩＰアドレス）が生成されるのを抑制することができる。しかも、ＩＰアドレス生成装置は、上記の特定のＩＰアドレスのネットワーク部の値を含む仮の候補ＩＰアドレスを生成する。このために、上記の特定のＩＰアドレスのネットワークアドレス部の値と異なるネットワークアドレス部の値を含むＩＰアドレス（即ち上記の第２のＩＰアドレス）が、仮の候補ＩＰアドレスとして決定されるのを抑制することができる。上記の構成によると、ＩＰアドレス決定装置と適切に通信を実行し得る仮の候補ＩＰアドレスを生成することができ、しかも、仮の候補ＩＰアドレスから対象ＩＰアドレスを決定することによって、ＩＰアドレス決定装置と適切に通信を実行し得る対象ＩＰアドレスを決定することができる。
【００１０】
生成部は、乱数を用いて、上記の特定の値を決定してもよい。この構成によると、上記の特定の値をランダムに決定することができる。
【００１１】
生成部は、上記の特定のサブネットマスクの値が第１の所定値よりも小さい第１の場合に、乱数を用いて、上記の特定の値を決定してもよい。また、生成部は、上記の特定のサブネットマスクの値が第１の所定値よりも大きい第２の場合に、乱数を用いずに、上記の特定の値を決定してもよい。上記の特定のサブネットマスクの値が第１の所定値よりも小さいということは、仮の候補ＩＰアドレスのホストアドレス部として採り得る値の範囲が大きい（即ち選択肢が多い）ことを意味し、上記の特定のサブネットマスクの値が第１の所定値よりも大きいということは、仮の候補ＩＰアドレスのホストアドレス部として採り得る値の範囲が小さい（即ち選択肢が少ない）ことを意味する。上記のＩＰアドレスの範囲は固定された範囲であるために、選択肢が多ければ、その選択肢の中では、上記のＩＰアドレスの範囲に含まれる値が占める割合が小さくなり、選択肢が少なければ、その選択肢の中では、上記のＩＰアドレスの範囲に含まれる値が占める割合が大きくなる。上記の構成では、ＩＰアドレス決定装置は、選択肢が多い場合には、乱数を用いて上記の特定の値をランダムに決定し、ランダムに決定された上記の特定の値を含む仮の候補ＩＰアドレスを生成する。即ち、ＩＰアドレス決定装置は、選択肢が多い場合には、仮の候補ＩＰアドレスをランダムに生成する。選択肢が多い場合には、上記の割合が小さいために、ランダムに生成する手法を採用しても、上記のＩＰアドレスの範囲に含まれない仮の候補ＩＰアドレスを高い確率で生成することができる。一方において、ＩＰアドレス決定装置は、選択肢が少ない場合には、仮の候補ＩＰアドレスをランダムに生成しない。上記の割合が大きいために、上記のＩＰアドレスの範囲に含まれる仮の候補ＩＰアドレスが生成される可能性が高いからである。この構成によると、上記のＩＰアドレスの範囲に含まれる仮の候補ＩＰアドレスが生成されるのを抑制することができる。
【００１２】
生成部は、第２の場合において、上記の特定のＩＰアドレスのホストアドレス部の値が第２の所定値よりも大きい場合に、第２の所定値よりも小さい値を、上記の特定の値として決定してもよい。生成部は、第２の場合において、上記の特定のＩＰアドレスのホストアドレス部の値が第２の所定値よりも小さい場合に、第２の所定値よりも大きい値を、上記の特定の値として決定してもよい。ＩＰアドレス割り当てサーバの中には、自己が割り当て可能なＩＰアドレスの範囲のうち、大きい値から順に割り当てる第１のタイプのサーバと、小さい値から順に割り当てる第２のタイプのサーバと、が存在する。例えば、上記の特定のＩＰアドレスがＩＰアドレス割り当てサーバによって割り当てられたものである場合には、上記の特定のＩＰアドレスのホストアドレス部の値に基づいて、当該ＩＰアドレス割り当てサーバが、第１及び第２のタイプのどちらのサーバであるのかを推察することができる。即ち、上記の特定のＩＰアドレスのホストアドレス部の値が第２の所定値よりも大きい場合には、上記の第１のタイプのサーバによって上記の特定のＩＰアドレスが割り当てられたことが推察できる。この場合、上記の第１のタイプのサーバによって、第２の所定値よりも大きいホストアドレス部の値を含むＩＰアドレスが他のデバイスに割り当てられている可能性が高い。従って、上記の構成では、ＩＰアドレス決定装置は、上記の特定のＩＰアドレスのホストアドレス部の値が第２の所定値よりも大きい場合に、第２の所定値よりも小さい値、即ち、他のデバイスに割り当てられている可能性が低い値を、上記の特定の値として決定する。一方において、上記の特定のＩＰアドレスのホストアドレス部の値が第２の所定値よりも小さい場合には、上記の第２のタイプのサーバによって上記の特定のＩＰアドレスが割り当てられたことが推察できる。従って、上記の構成では、ＩＰアドレス決定装置は、上記の特定のＩＰアドレスのホストアドレス部の値が第２の所定値よりも小さい場合に、第２の所定値よりも大きい値、即ち、他のデバイスに割り当てられている可能性が低い値を、上記の特定の値として決定する。上記の構成によると、他のデバイスに割り当てられている可能性が低いホストアドレス部の値を含む仮の候補ＩＰアドレスを生成することができる。
【００１３】
上記の「第２の所定値よりも小さい値」は、仮の候補ＩＰアドレスのホストアドレス部の値として採り得る値の範囲のうち、最小値から順に選択される値であってもよい。また、上記の「第２の所定値よりも大きい値」は、仮の候補ＩＰアドレスのホストアドレス部の値として採り得る値の範囲のうち、最大値から順に選択される値であってもよい。この構成によると、他のデバイスに割り当てられている可能性が低いホストアドレス部の値を含む仮の候補ＩＰアドレスを、効率的に生成することができる。
【００１４】
ＩＰアドレス決定装置は、決定部によって決定される対象ＩＰアドレスを対象デバイスに供給する供給部をさらに備えていてもよい。この構成によると、例えば、対象ＩＰアドレスを対象デバイスに入力する作業をユーザが実行せずに済む。ユーザの作業負担を軽減することができる。
【００１５】
特定部は、上記のＩＰアドレスの範囲が予め登録されているテーブルから、上記のＩＰアドレスの範囲を読み込むことによって、上記のＩＰアドレスの範囲を特定してもよい。
【００１６】
本明細書では、さらに、ネットワーク内で利用されるべき対象デバイスのためのデバイスドライバがインストールされる端末装置を開示する。端末装置は、情報取得部と、上記のＩＰアドレス決定装置と、ポート生成部と、インストール部と、を備えていてもよい。情報取得部は、対象デバイスから、対象デバイスに現在設定されているＩＰアドレスの設定手法を示す設定手法情報を取得してもよい。ＩＰアドレス決定装置は、設定手法情報が、対象デバイスのＩＰアドレスが変更される可能性が高い特定の設定手法を示す場合であり、かつ、対象デバイスのデバイス名に対応する対応ＩＰアドレスを名前解決によって取得することができない場合に、対象デバイスのための対象ＩＰアドレスを決定してもよい。ポート生成部は、対象ＩＰアドレスに対応するポートを生成してもよい。インストール部は、デバイスドライバをインストールしてもよい。この構成によると、端末装置は、対象デバイスのＩＰアドレスが変更される可能性が高く、かつ、名前解決によって適切なＩＰアドレスが得られない場合に、対象デバイスのための対象ＩＰアドレスを迅速に決定し得る。
【００１７】
なお、上記のＩＰアドレス決定装置を実現するための制御方法及びコンピュータプログラムも、新規で有用である。また、上記の端末装置を実現するための制御方法及びコンピュータプログラムも、新規で有用である。
【図面の簡単な説明】
【００１８】
【図１】ネットワークシステムの構成の一例を示す。
【図２】プリンタドライバをインストールするための処理のフローチャートを示す。
【図３】図２の続きのフローチャートを示す。
【図４】ＩＰアドレス決定処理のフローチャートを示す。
【図５】図４のフローチャートを示す。
【図６】仮の候補ＩＰアドレスの生成手法の一例を説明するための図を示す。
【図７】仮の候補ＩＰアドレスの生成手法の別の例を説明するための図を示す。
【発明を実施するための形態】
【００１９】
（システムの構成）
図面を参照して実施例を説明する。図１に示されるように、ネットワークシステム２は、ＬＡＮ４と、端末装置１０と、プリンタ６０と、複数のサーバ６２〜６８と、を備える。各デバイス１０，６０，６２〜６８は、ＬＡＮ４に接続されている。各デバイス１０等は、ＬＡＮ４を介して、相互に通信可能である。なお、本実施例では、ネットワークシステム２では、ＩＰｖ４（Internet Protocol version4）のＩＰアドレスが利用される。
【００２０】
（端末装置１０の構成）
本実施例の端末装置１０はＰＣである。端末装置１０は、操作部１２と、表示部１４と、ネットワークインターフェイス１６と、記録媒体読取部１８と、記憶部２４と、制御部３０と、を備える。操作部１２は、マウスとキーボードとによって構成される。ユーザは、操作部１２を操作することによって、様々な指示を端末装置１０に入力することができる。表示部１４は、様々な情報を表示するためのディスプレイである。ネットワークインターフェイス１６は、ＬＡＮ４に接続されている。記録媒体読取部１８は、記録媒体２０に格納されているデータ（例えばプログラム２２、テーブル２３内のデータ）を読み取る。記録媒体２０は、データを格納するためのＣＤ、ＤＶＤ等の媒体であり、プリンタ６０のベンダによって製造されたものである。記録媒体２０は、プリンタ６０の出荷時には、プリンタ６０と共にパッケージされている。記録媒体２０に含まれるプログラム２２は、プリンタ６０のためのプリンタドライバと、当該プリンタドライバをインストールするためのプログラムと、を含む。記録媒体２０に含まれるテーブル２３は、複数種類のＩＰアドレス割り当てサーバのそれぞれについて、当該種類のＩＰアドレス割り当てサーバに対応する種類情報と、当該種類のＩＰアドレス割り当てサーバが割り当て可能なＩＰアドレスの範囲と、が対応づけられた情報を含む。ＩＰアドレス割り当てサーバは、例えば、ＤＨＣＰサーバ、ＢＯＯＴＰサーバ等である。記憶部２４は、ＯＳ（Operating System）プログラム２６を記憶する。記憶部２４は、さらに、端末装置１０自身に現在設定されているＩＰアドレス２７及びサブネットマスク２８を記憶する。なお、ＩＰアドレス２７は、ＤＨＣＰサーバ６２によって端末装置１０に割り当てられる。制御部３０は、プログラム２２，２６に従って、様々な処理を実行する。制御部３０がプログラム２２に従って処理を実行することによって、各部３２〜４６の機能が実現される。
【００２１】
（他のデバイス６０〜６８の構成）
プリンタ６０は、少なくとも印刷機能を有するデバイスである。プリンタ６０は、スキャナ機能、コピー機能、ＦＡＸ機能、電話機能等をさらに有する多機能機であってもよい。プリンタ６０は、ベンダによって予め決められるＭＡＣアドレスを有する。また、プリンタ６０には、ノード名が設定されている。プリンタ６０の出荷時には、プリンタ６０には、デフォルトのノード名が設定されている。ユーザは、プリンタ６０の操作部（図示省略）を操作することによって、所望のノード名をプリンタ６０に入力することができる。この結果、プリンタ６０には、デフォルトのノード名に代えて、入力されたノード名が設定される。さらに、プリンタ６０には、ＩＰアドレスが設定されている。ＩＰアドレスの設定手法については、後で詳しく説明する。なお、以下では、「デバイス（例えばプリンタ６０、端末装置１０）に設定されているＩＰアドレス（又はノード名）」、及び、「デバイスのＩＰアドレス（又はノード名）」という用語を使用することがあるが、これらの用語は、例えば、「デバイスが自己のＩＰアドレス（又はノード名）として使用しているＩＰアドレス（又はノード名）」と言い換えることができる。
【００２２】
ＤＨＣＰサーバ６２は、ＬＡＮ４に接続されている対象デバイス（プリンタ６０、端末装置１０等）にＩＰアドレスを割り当てる。ＤＨＣＰサーバ６２は、対象デバイスからの要求に応じて、ＬＡＮ４に接続されている他のデバイスに設定されていないＩＰアドレスを対象デバイスに送信する。この結果、対象デバイスは、ＤＨＣＰサーバ６２から送信されるＩＰアドレスを、自己のＩＰアドレスとして、新たに設定する。なお、テーブル２３に複数種類のＩＰアドレス割り当てサーバが登録されていることから理解できるように、複数種類のＤＨＣＰサーバが知られている。各種類のＤＨＣＰサーバが割り当て可能なＩＰアドレスの範囲は、例えばＤＨＣＰサーバのメーカによって予め決められている。例えば、ＤＨＣＰサーバ６２がテーブル２３の「Ｓ１」に対応するものである場合には、ＤＨＣＰサーバ６２は、「１９２．１６８．１．１００」〜「１９２．１６８．１．１５０」の範囲内の１個のＩＰアドレスを対象デバイスに割り当てる。
【００２３】
ＢＯＯＴＰサーバ６４は、ＤＨＣＰサーバ６２と同様の処理を実行する。即ち、ＢＯＯＴＰサーバ６４は、ＬＡＮ４に接続されている対象デバイスからの要求に応じて、対象デバイス（例えばプリンタ６０）にＩＰアドレスを割り当てる。複数種類のＢＯＯＴＰサーバが知られている。各種類のＢＯＯＴＰサーバが割り当て可能なＩＰアドレスの範囲は、予め決められている。
【００２４】
ＲＡＲＰ（Reverse Address Resolution Protocol）サーバ６６は、ＬＡＮ４に接続されている対象デバイスに設定されるべきＩＰアドレスと、対象デバイスのＭＡＣアドレスと、を対応づけて記憶する。例えば、ユーザは、ＲＡＲＰサーバ６６の操作部（図示省略）を操作することによって、対象デバイスに設定されるべきＩＰアドレスと、対象デバイスのＭＡＣアドレスと、をＲＡＲＰサーバ６６に入力してもよい。この場合、ＲＡＲＰサーバ６６は、ユーザによって自身に入力されたＩＰアドレスとＭＡＣアドレスとを対応づけて記憶する。また、例えば、ユーザは、端末装置１０の操作部１２を操作することによって、対象デバイスに設定されるべきＩＰアドレスと、対象デバイスのＭＡＣアドレスと、を端末装置１０に入力してもよい。この場合、端末装置１０は、当該ＩＰアドレスと当該ＭＡＣアドレスとをＲＡＲＰサーバ６６に送信する。この結果、ＲＡＲＰサーバ６６は、ユーザによって端末装置１０に入力されたＩＰアドレスとＭＡＣアドレスとを対応づけて記憶する。対象デバイスは、例えば、自身の電源がＯＮされた際に、自己のＭＡＣアドレスを含むコマンドをＲＡＲＰサーバ６６に送信する。ＲＡＲＰサーバ６６は、上記のコマンドに含まれるＭＡＣアドレスに対応づけられているＩＰアドレスを含む応答を送信する。この結果、対象デバイスは、ＲＡＲＰサーバ６６から送信される応答に含まれるＩＰアドレスを、自己のＩＰアドレスとして、新たに設定する。
【００２５】
ＤＮＳ（Domain Name System）サーバ６８は、ＤＨＣＰサーバ６２又はＢＯＯＴＰサーバ６４によってＩＰアドレスが割り当てられる各デバイス（例えばプリンタ６０、端末装置１０）について、当該デバイスに設定されているＩＰアドレスと、当該デバイスに設定されているノード名と、を対応づけて記憶する。例えば、ＤＨＣＰサーバ６２又はＢＯＯＴＰサーバ６４は、対象デバイスにＩＰアドレスを割り当てた際に、当該ＩＰアドレスと対象デバイスのノード名とをＤＮＳサーバ６８に送信する。この結果、ＤＮＳサーバ６８は、ＤＨＣＰサーバ６２又はＢＯＯＴＰサーバ６４から送信されるＩＰアドレスとノード名とを対応づけて記憶する。ＬＡＮ４に接続されているデバイス（例えば端末装置１０）は、当該デバイスが通信すべき他のデバイスのノード名をＤＮＳサーバ６８に送信することによって、当該ノード名に対応づけられているＩＰアドレスをＤＮＳサーバ６８から取得することができる。
【００２６】
（プリンタ６０にＩＰアドレスを設定するための手法）
本実施例では、プリンタ６０にＩＰアドレスを設定するための手法として、「Ｓｔａｔｉｃ」と「ＤＨＣＰ」と「ＢＯＯＴＰ」と「ＲＡＲＰ」と「ＡＵＴＯ」とを含む複数種類の設定手法が存在する。本実施例では、ユーザは、プリンタ６０の操作部（図示省略）を操作することによって、プリンタ６０にＩＰアドレスを設定する。しかしながら、ユーザは、例えば、ＵＳＢケーブル等を用いて、プリンタ６０を端末装置１０に接続し、端末装置１０の操作部１２を操作することによって、プリンタ６０にＩＰアドレスを設定してもよい。ユーザは、プリンタ６０の操作部を操作することによって、上記の複数種類の設定手法の中から１種類の設定手法を選択する。
【００２７】
（Ｓｔａｔｉｃ）
設定手法「Ｓｔａｔｉｃ」が選択された場合には、ユーザは、プリンタ６０の操作部を操作することによって、プリンタ６０に設定されるべきＩＰアドレスをプリンタ６０に入力する。プリンタ６０は、入力されたＩＰアドレスを、自己のＩＰアドレスとして、新たに設定する。この場合、プリンタ６０は、自己のＩＰアドレスの設定手法が「Ｓｔａｔｉｃ」であることを示す設定手法情報を記憶する。
【００２８】
（ＤＨＣＰ又はＢＯＯＴＰ）
設定手法「ＤＨＣＰ」又は「ＢＯＯＴＰ」が選択された場合には、プリンタ６０は、ＤＨＣＰサーバ６２又はＢＯＯＴＰサーバ６４にコマンドを送信することによって、ＬＡＮ４に接続されている他のデバイスに設定されていないＩＰアドレスをＤＨＣＰサーバ６２又はＢＯＯＴＰサーバ６４から取得する。プリンタ６０は、取得されたＩＰアドレスを、自己のＩＰアドレスとして、新たに設定する。この場合、プリンタ６０は、自己のＩＰアドレスの設定手法が「ＤＨＣＰ」又は「ＢＯＯＴＰ」であることを示す設定手法情報を記憶する。なお、ＩＰアドレス割り当てサーバ（ＤＨＣＰサーバ６２、ＢＯＯＴＰサーバ６４）は、プリンタ６０にＩＰアドレスを貸し出す機能を有するサーバであると表現することもできる。ＩＰアドレス割り当てサーバによって貸し出されるＩＰアドレスは、プリンタ６０において永続的に利用されるものではない。従って、設定手法「ＤＨＣＰ」又は「ＢＯＯＴＰ」が選択された場合には、プリンタ６０のＩＰアドレスが変更され得る。
【００２９】
（ＲＡＲＰ）
設定手法「ＲＡＲＰ」が選択された場合には、プリンタ６０は、ＲＡＲＰサーバ６６に自己のＭＡＣアドレスを含むコマンドを送信することによって、当該ＭＡＣアドレスに対応づけられているＩＰアドレスをＲＡＲＰサーバ６６から取得する。なお、ユーザは、設定手法「ＲＡＲＰ」を選択する場合には、プリンタ６０に設定されるべきＩＰアドレスと、プリンタ６０のＭＡＣアドレスと、をＲＡＲＰサーバ６６に予め入力（登録）しておく必要がある。プリンタ６０は、取得したＩＰアドレスを、自己のＩＰアドレスとして、新たに設定する。この場合、プリンタ６０は、自己のＩＰアドレスの設定手法が「ＲＡＲＰ」であることを示す設定手法情報を記憶する。
【００３０】
（ＡＵＴＯ）
設定手法「ＡＵＴＯ」が選択された場合には、プリンタ６０は、ＤＨＣＰ、ＢＯＯＴＰ、及び、ＲＡＲＰの３種類の設定手法の中から１種類の設定手法を選択し、選択された設定手法を用いて、ＩＰアドレスを取得することを試行する第１の試行処理を実行する。第１の試行処理でＩＰアドレスを取得不可能である場合には、プリンタ６０は、残りの２種類の設定手法の中から１種類の設定手法を選択し、選択された設定手法を用いて、ＩＰアドレスを取得することを試行する第２の試行処理を実行する。第２の試行処理でＩＰアドレスを取得不可能である場合には、プリンタ６０は、残りの１種類の設定手法を用いて、ＩＰアドレスを取得することを試行する第３の試行処理を実行する。なお、上記の３種類の設定手法の選択順序は、予め決められている。プリンタ６０は、第１〜第３の試行処理のいずれかで取得されたＩＰアドレスを、自己のＩＰアドレスとして、新たに設定する。この場合、プリンタ６０は、ＩＰアドレスを取得できた試行処理に対応する設定手法（「ＤＨＣＰ」、「ＢＯＯＴＰ」、又は、「ＲＡＲＰ」）を示す設定手法情報を記憶する。なお、これに代えて、プリンタ６０は、自己のＩＰアドレスの設定手法が「ＡＵＴＯ」であることを示す設定手法情報を記憶してもよい。
【００３１】
（ＡＰＩＰＡ（Automatic Private IP Addressing））
設定手法「ＤＨＣＰ」、「ＢＯＯＴＰ」、又は、「ＲＡＲＰ」が選択された場合に、プリンタ６０がＩＰアドレスを取得することができない状況が発生し得る。例えば、選択された設定手法（例えば「ＤＨＣＰ」）に対応するサーバ（例えばＤＨＣＰサーバ６２）が存在しない場合には、プリンタ６０は、ＩＰアドレスを取得することができない。また、例えば、プリンタ６０に設定されるべきＩＰアドレスと、プリンタ６０のＭＡＣアドレスと、がＲＡＲＰサーバ６６に予め登録されていない状態で、「ＲＡＲＰ」が選択された場合には、プリンタ６０は、ＩＰアドレスを取得することができない。「ＤＨＣＰ」、「ＢＯＯＴＰ」、又は、「ＲＡＲＰ」が選択された場合であって、ＩＰアドレスを取得不可能である場合には、プリンタ６０は、ＡＰＩＰＡに従って、自己に設定されるべきＩＰアドレスを生成する。また、「ＡＵＴＯ」が選択された場合であって、上記の第３の試行処理でもＩＰアドレスを取得不可能である場合にも、プリンタ６０は、ＡＰＩＰＡに従って、自己に設定されるべきＩＰアドレスを生成する。プリンタ６０は、ＡＰＩＰＡに従ってＩＰアドレスを生成するためのアルゴリズムを予め記憶している。プリンタ６０は、ＡＰＩＰＡに従って生成されたＩＰアドレスを、自己のＩＰアドレスとして、新たに設定する。ＡＰＩＰＡに従ってＩＰアドレスが設定される場合、プリンタ６０は、「ＡＵＴＯ」を示す設定手法情報を記憶する。なお、これに代えて、プリンタ６０は、ユーザによって選択された設定手法（「ＤＨＣＰ」、「ＢＯＯＴＰ」、「ＲＡＲＰ」、又は、「ＡＵＴＯ」）を示す設定手法情報を記憶してもよい。
【００３２】
（端末装置１０が実行する処理）
続いて、端末装置１０が実行する処理について説明する。ユーザは、プリンタ６０のためのプリンタドライバが端末装置１０にインストールされることを望む場合に、記録媒体２０を記録媒体読取部１８内に格納し、操作部１２において所定の操作を実行する。これにより、制御部３０は、ＯＳプログラム２６に従って、記録媒体読取部１８を起動する。この結果、記録媒体読取部１８は、記録媒体２０に格納されているプログラム２２を読み取り、プログラム２２を記憶部２４内のワーク領域に格納する。これにより、制御部３０は、ワーク領域に格納されたプログラム２２に従って、図２及び図３の処理を実行することができる。
【００３３】
図２に示されるように、情報取得部４２（図１参照）は、第１のコマンドをブロードキャストする（Ｓ１０）。プログラム２２は、プリンタ６０のためのプログラムであるために、プリンタ６０のモデル名（機種名）を含む。情報取得部４２は、プログラム２２に含まれるモデル名を含む第１の応答が受信されることを監視する（Ｓ１２）。例えば、プリンタ６０がＬＡＮ４に正常に接続されている状態では、プリンタ６０は、第１のコマンドが受信された場合に、自己のモデル名、自己のＩＰアドレス、自己のノード名、自己のＩＰアドレスの設定手法を示す設定手法情報等を含む第１の応答を端末装置１０に送信する。この結果、情報取得部４２は、プログラム２２に含まれるモデル名を含む第１の応答を取得し、Ｓ１２でＹＥＳと判断する。一方において、例えば、プリンタ６０がＬＡＮ４に正常に接続されていない状態では、プリンタ６０は、第１のコマンドを受信することができず、第１の応答を送信しない。この場合、情報取得部４２は、Ｓ１２でＮＯと判断する。
【００３４】
Ｓ１２でＮＯの場合、制御部３０は、警告画面を表示部１４に表示させ（Ｓ１４）、処理を終了する。一方において、Ｓ１２でＹＥＳの場合、情報取得部４２は、第１の応答に含まれるＩＰアドレス、ノード名、及び、設定手法情報を読み込む（Ｓ１６）。即ち、情報取得部４２は、プリンタ６０のＩＰアドレス、プリンタ６０のノード名、及び、プリンタ６０のＩＰアドレスの設定手法を示す設定手法情報を読み込む。次いで、制御部３０は、Ｓ１６で読み込まれたプリンタ６０のＩＰアドレスがＡＰＩＰＡに従って生成されたものであるのか否かを判断する。ＡＰＩＰＡでは、ＩＰアドレスの範囲（例えば「１６９．２５４．０．０」〜「１６９．２５４．２５５．２５４」）が予め決められており、その範囲に含まれるＩＰアドレスが生成される。制御部３０は、Ｓ１６で読み込まれたプリンタ６０のＩＰアドレスが上記の範囲に含まれる場合に、Ｓ３０でＹＥＳと判断する。
【００３５】
Ｓ３０でＹＥＳの場合、決定部３４（図１参照）は、対象ＩＰアドレス決定処理を実行する（Ｓ３２）。対象ＩＰアドレス決定処理の詳細については、後で述べる。次いで、制御部３０は、対象ＩＰアドレス決定処理で決定された対象ＩＰアドレスを表示部１４に表示させる（Ｓ３４）。この結果、ユーザは、プリンタ６０に新たに設定されるべき対象ＩＰアドレスを知ることができる。ユーザは、例えば、プリンタ６０の操作部を操作することによって、設定手法「Ｓｔａｔｉｃ」を選択して、対象ＩＰアドレスをプリンタ６０に設定することができる。Ｓ３４を終えると、図３のＳ５０に進む。図２のＳ３４を経て実行されるＳ５０では、ポート生成部４４（図１参照）は、図２のＳ３２で決定された対象ＩＰアドレスを用いて、プリンタポートを生成する。即ち、ポート生成部４４は、対象ＩＰアドレスが指定されたプリンタポートを生成する。この結果、プリンタ６０に対応するプリンタポートが生成される。プリンタポートは、記憶部２４に格納される。Ｓ５０を終えると、インストール部４６（図１参照）は、プログラム２２に含まれるプリンタドライバを記憶部２４内の所定の領域に格納することによって、プリンタドライバをインストールする（Ｓ５２）。
【００３６】
一方において、Ｓ３０でＮＯの場合、制御部３０は、Ｓ１６で読み込まれた設定手法情報が「Ｓｔａｔｉｃ」を示すのか否かを判断する（Ｓ３６）。ここでＹＥＳの場合、図３のＳ５０に進む。図２のＳ３６でＹＥＳの場合に実行されるＳ５０では、ポート生成部４４は、図２のＳ１６で読み込まれたプリンタ６０のＩＰアドレスを用いて、プリンタポートを生成する。Ｓ５０の次のＳ５２は、上記と同様に実行される。
【００３７】
図２のＳ３６でＮＯの場合、即ち、図２のＳ１６で読み込まれた設定手法情報が「ＤＨＣＰ」、「ＢＯＯＴＰ」、「ＲＡＲＰ」、又は、「ＡＵＴＯ」を示す場合には、図３のＳ４０に進む。Ｓ４０では、制御部３０は、名前解決によってプリンタ６０のＩＰアドレスを取得可能であるのか否かを確認する（Ｓ４０）。具体的には、制御部３０は、図２のＳ１６で読み込まれたプリンタ６０のノード名を含む第２のコマンドをブロードキャストする。ＬＡＮ４に接続されているプリンタ６０は、第２のコマンドを受信する。第２のコマンドに含まれるノード名を有するプリンタ６０は、自己のＩＰアドレスを含む第２の応答を端末装置１０に送信する。ＬＡＮ４に接続されている他のプリンタ（図示省略）も第２のコマンドを受信するが、そのプリンタは、第２のコマンドに含まれるノード名と異なるノード名を有するために、第２の応答を送信しない。なお、端末装置１０のネットワークインターフェイス１６によって第２の応答が受信されても、制御部３０が第２の応答を取得できないことがあり得る。例えば、端末装置１０にセキュリティソフトが格納されている場合には、そのセキュリティソフトが、第２の応答を破棄する可能性がある。この場合、制御部３０は、第２の応答を取得することができない。
【００３８】
なお、上記の名前解決手法の代わりに、以下の名前解決手法を採用してもよい。即ち、制御部３０は、図２のＳ１６で読み込まれたプリンタ６０のノード名を含む第３のコマンドをＤＮＳサーバ６８に送信する。プリンタ６０のノード名とプリンタ６０のＩＰアドレスとの組合せがＤＮＳサーバ６８に登録されている場合には、ＤＮＳサーバ６８は、プリンタ６０のＩＰアドレスを含む第３の応答を端末装置１０に送信する。なお、上記の第２の応答の場合と同様に、ネットワークインターフェイス１６によって第３の応答が受信されても、制御部３０が第３の応答を取得できないことがあり得る。また、プリンタ６０のノード名がＤＮＳサーバ６８に登録されていない場合、又は、ＤＮＳサーバ６８がＬＡＮ４に接続されていない場合にも、制御部３０は、第３の応答を取得することができない。
【００３９】
上記した名前解決手法によって応答（第２の応答又は第３の応答）を取得可能である場合には、制御部３０は、Ｓ４０でＹＥＳと判断する。この場合、制御部３０は、上記の応答に含まれるＩＰアドレスと、図２のＳ１６で読み込まれたＩＰアドレスと、が一致するのか否かを判断する（Ｓ４２）。Ｓ４２でＮＯの場合は、名前解決が適切に機能していないことを意味する。例えば、ＤＨＣＰサーバ６２等によってプリンタ６０のＩＰアドレスが変更されたにも関わらず、変更後のＩＰアドレスとプリンタ６０のノード名との対応関係がＤＮＳサーバ６８に登録されていない場合（即ち変更前のＩＰアドレスとプリンタ６０のノード名との対応関係がＤＮＳサーバ６８に依然として登録されている場合）には、名前解決が適切に機能しない。名前解決が適切に機能している場合（Ｓ４２でＹＥＳの場合）には、ポート生成部４４は、図２のＳ１６で読み込まれたノード名を用いて、プリンタポートを生成する（Ｓ４４）。即ち、ポート生成部４４は、図２のＳ１６で読み込まれたプリンタ６０のノード名が指定されたプリンタポートを生成する。この結果、プリンタ６０に対応するプリンタポートが生成される。Ｓ４４の次のＳ５２は、上記と同様に実行される。
【００４０】
Ｓ４０でＮＯの場合、又は、Ｓ４２でＮＯの場合、決定部３４は、対象ＩＰアドレス決定処理を実行する（Ｓ４６）。Ｓ４６の処理は、図２のＳ３２の処理と同様である。次いで、供給部４０（図１参照）は、図２のＳ１６で読み込まれたプリンタ６０のＩＰアドレスを送信先として、Ｓ４６で決定された対象ＩＰアドレスを送信する（Ｓ４８）。なお、Ｓ４８の処理は、例えば、ＳＮＭＰ（Simple Network Management Protocol）のＳＥＴコマンドを利用する。これにより、端末装置１０からプリンタ６０に対象ＩＰアドレスが供給される。プリンタ６０は、対象ＩＰアドレスを、自己のＩＰアドレスとして、新たに設定する。なお、Ｓ４８が実行された場合には、プリンタ６０は、自己のＩＰアドレスの設定手法が「Ｓｔａｔｉｃ」であることを示す設定手法情報を新たに記憶する。Ｓ４８を経て実行されるＳ５０では、ポート生成部４４は、Ｓ４６で決定された対象ＩＰアドレスを用いて、プリンタポートを生成する（Ｓ５０）。Ｓ５０の次のＳ５２は、上記と同様に実行される。
【００４１】
なお、図２のＳ３０でＹＥＳの場合、即ち、プリンタ６０のＩＰアドレスがＡＰＩＰＡによって決定されたものである場合には、プリンタ６０は、ＡＰＩＰＡによって予め決められたＩＰアドレス（例えば「１６９．２５４．・・・」等）を有する。この場合、ＡＰＩＰＡによって決定されたプリンタ６０のＩＰアドレスのネットワークアドレス部の値（例えば「１６９．２５４」）が、ＤＨＣＰサーバ６２によって割り当てられた端末装置１０のＩＰアドレス２７のネットワークアドレス部の値（例えば「１９２．１６８」）と異なる。従って、図２のＳ３０でＹＥＳの場合には、端末装置１０とプリンタ６０との間でユニキャスト通信を実行することができない。即ち、端末装置１０は、図２のＳ３２で決定される対象ＩＰアドレスを、ユニキャスト通信によって、プリンタ６０に送信することができない。このために、図２のＳ３０でＹＥＳの場合に実行されるＳ３４では、端末装置１０は、対象ＩＰアドレスを表示させ、対象ＩＰアドレスをプリンタ６０に設定するようにユーザに促す。一方において、図２のＳ３０でＮＯの場合、即ち、プリンタ６０のＩＰアドレスがＡＰＩＰＡ以外の手法（例えば「ＤＨＣＰ」等）によって決定されたものである場合には、プリンタ６０のＩＰアドレスのネットワークアドレス部の値が、端末装置１０のＩＰアドレス２７のネットワークアドレス部の値に一致し得る。従って、図２のＳ３０でＮＯの場合には、端末装置１０とプリンタ６０との間でユニキャスト通信を実行し得る。このために、図２のＳ３０でＮＯの場合に実行される図３のＳ４８では、端末装置１０は、ユニキャスト通信を用いて、対象ＩＰアドレスをプリンタ６０に送信する。
【００４２】
（ＩＰアドレス決定処理）
続いて、図４及び図５を参照して、図２のＳ３２又は図３のＳ４６で実行されるＩＰアドレス決定処理について説明する。図４のＳ７０では、生成部３６（図１参照）は、記憶部２４に格納されている端末装置１０自身のＩＰアドレス２７及びサブネットマスク２８を読み込む。次いで、生成部３６は、ＩＰアドレス２７及びサブネットマスク２８を用いて、ＩＰアドレス２７のネットワークアドレス部の値と、ＩＰアドレス２７のホストアドレス部の値と、を特定する。ＩＰアドレス２７及びサブネットマスク２８は、それぞれ、３２ビットの値（即ち２進数の３２桁の値）によって構成されている。ＩＰアドレス２７及びサブネットマスク２８は、８ビット毎の１０進数又は１６進数で表現することができる。なお、以下では、８ビット毎の１０進数又は１６進数のことを「１０進数」又は「１６進数」と簡単に呼ぶ。
【００４３】
図６の例では、ＩＰアドレス２７が１０進数で「１９２．１６８．０．１」であり、サブネットマスク２８が１０進数で「２５５．２５５．２５５．０」である。このサブネットマスク２８は、２進数では、先頭から２４ビットが全て「１」であり、最後の８ビットが全て「０」である。即ち、図６のサブネットマスク２８は、先頭から２４ビットをマスクすることを示す。サブネットマスク２８がマスクしている部分に対応するＩＰアドレス２７の部分が、ネットワークアドレス部であり、サブネットマスク２８がマスクしていない部分に対応するＩＰアドレス２７の部分が、ホストアドレス部である。即ち、図６のＩＰアドレス２７では、先頭から２４ビットの値「１９２．１６８．０」が、ネットワークアドレス部の値であり、最後の８ビットの値「１（２進数で「０００００００１」）」が、ホストアドレス部の値である。
【００４４】
また、図７の例では、ＩＰアドレス２７は図６と同様であるが、サブネットマスク２８が「２５５．２５５．２５５．２２４」である。なお、図７のＩＰアドレス２７の右側に記載されている括弧内の８ビットの値「０００００００１」は、ＩＰアドレス２７の最後の８ビットが２進数で表現されたものである。同様に、図７のサブネットマスク２８の右側に記載されている括弧内の８ビットの値「１１１０００００」は、サブネットマスク２８の最後の８ビットが２進数で表現されたものである。従って、図７のサブネットマスク２８を２進数で表現すると、先頭から２７ビットが全て「１」であり、最後の５ビットが全て「０」である。即ち、図７のサブネットマスク２８は、先頭から２７ビットをマスクすることを示す。従って、図７のＩＰアドレス２７では、先頭から２７ビットの値が、ネットワークアドレス部の値であり、最後の５ビットの値「００００１」が、ホストアドレス部の値である。
【００４５】
図４のＳ７０では、生成部３６は、サブネットマスク２８がマスクしている部分に対応するＩＰアドレス２７の部分を抽出することによって、ネットワークアドレス部の値を特定する。例えば、図６のＩＰアドレス２７の場合には、生成部３６は、「１９２．１６８．０」を特定する。また、生成部３６は、サブネットマスク２８がマスクしていない部分に対応するＩＰアドレス２７の部分を抽出することによって、ホストアドレス部の値を特定する。例えば、図６のＩＰアドレス２７の場合には、生成部３６は、「１」を特定する。Ｓ７０を終えると、Ｓ７２に進む。
【００４６】
Ｓ７２では、生成部３６は、サブネットマスク２８の値が規定値より大きいのか否かを判断する。本実施例では、上記の規定値は、１６進数で「ＦＦ．ＦＦ．ＦＦ．Ｃ０」である。即ち、上記の規定値は、２進数では、先頭から２６ビットが全て「１」であり、最後の６ビットが全て「０」である。例えば、図６のサブネットマスク２８（先頭から２４ビットが全て「１」＝１６進数で「ＦＦ．ＦＦ．ＦＦ．０」）は、上記の規定値（先頭から２６ビットが全て「１」＝１６進数で「ＦＦ．ＦＦ．ＦＦ．Ｃ０」）より小さい。従って、図６のサブネットマスク２８については、生成部３６は、Ｓ７２でＮＯと判断し、Ｓ７４に進む。また、例えば、図７のサブネットマスク２８（先頭から２７ビットが全て「１」＝１６進数で「ＦＦ．ＦＦ．ＦＦ．Ｅ０」）は、上記の規定値（先頭から２６ビットが全て「１」＝１６進数で「ＦＦ．ＦＦ．ＦＦ．Ｃ０」）より大きい。従って、図７のサブネットマスク２８については、生成部３６は、Ｓ７２でＹＥＳと判断し、Ｓ８０に進む。
【００４７】
Ｓ７４では、生成部３６は、３２ビットの乱数を生成する（Ｓ７４）。図６には、Ｓ７４で生成される乱数の一例が、１０進数で表わされている（「２２０．１９２．２１．５」）。次いで、生成部３６は、仮ホストアドレス部の値を生成する（Ｓ７６）。生成部３６は、まず、サブネットマスク２８の論理否定（ＮＯＴ）を計算する。例えば、図６のサブネットマスク２８は、先頭から２４ビットが全て「１」であり、最後の８ビットが全て「０」である。従って、図６のサブネットマスク２８の論理否定は、先頭から２４ビットが全て「０」であり、最後の８ビットが全て「１」である。即ち、図６のサブネットマスク２８の論理否定は、図６の「ＮＯＴサブネットマスク」に示されるように、１０進数で「０．０．０．２５５」である。次いで、生成部３６は、生成済みの乱数とサブネットマスク２８の論理否定との論理積（ＡＮＤ）を計算する。例えば、図６では、生成済みの乱数が「２２０．１９２．２１．５」であり、サブネットマスク２８の論理否定が「０．０．０．２５５」である。サブネットマスク２８の論理否定の先頭から２４ビットが全て「０」であるために、生成済みの乱数の先頭から２４ビットの値に関わらず、上記の論理積では、先頭から２４ビットが全て「０」になる。また、サブネットマスク２８の論理否定の最後の８ビットが全て「１」であるために、上記の論理積の最後の８ビットは、生成済みの乱数の最後の８ビット「０００００１０１（＝１０進数で「５」）」に一致する。従って、上記の論理積は、１０進数で「０．０．０．５」である。即ち、図６に示されるように、仮ホストアドレス部の値は、１０進数で「０．０．０．５」である。なお、実際には、最後の８ビットがホストアドレス部であるために、仮ホストアドレス部の値は、１０進数で「５」である。Ｓ７６を終えると、Ｓ７８に進む。
【００４８】
Ｓ７８では、生成部３６は、まず、Ｓ７６で生成された仮ホストアドレス部の全てのビットが「０」であるのか否かを判断する第１の判断処理を実行する。図６の仮ホストアドレス部の値は、２進数で「０００００１０１」であるために、全てのビットが「０」ではない。この場合、生成部３６は、第１の判断処理でＮＯと判断する。さらに、生成部３６は、Ｓ７６で生成された仮ホストアドレス部の全てのビットが「１」であるのか否かを判断する第２の判断処理を実行する。図６の仮ホストアドレス部の値は、２進数で「０００００１０１」であるために、全てのビットが「１」ではない。この場合、生成部３６は、第２の判断処理でＮＯと判断する。さらに、生成部３６は、Ｓ７６で生成された仮ホストアドレス部の値が、Ｓ７０で特定されたホストアドレス部の値（即ち端末装置１０のＩＰアドレス２７のホストアドレス部の値）に一致するのか否かを判断する第３の判断処理を実行する。図６のＩＰアドレス２７のホストアドレス部の値は、２進数で「０００００００１（＝１０進数で「１」）」であり、図６の仮ホストアドレス部の値は、２進数で「０００００１０１（＝１０進数で「５」）」である。この場合、生成部３６は、第３の判断処理でＮＯと判断する。上記の第１〜第３の判断処理のいずれでもＮＯと判断される場合には、生成部３６は、Ｓ７８でＮＯと判断する。この場合、図５のＳ１００に進む。一方において、上記の第１〜第３の判断処理のいずれかでＹＥＳと判断される場合には、生成部３６は、Ｓ７８でＹＥＳと判断する。この場合、生成部３６は、Ｓ７４及びＳ７６の処理によって、仮ホストアドレス部の値を再び生成する。
【００４９】
上述したように、図７のサブネットマスク２８の場合には、Ｓ７２でＹＥＳと判断され、Ｓ８０に進む。Ｓ８０では、生成部３６は、Ｓ７０で特定されたホストアドレス部の値（即ち端末装置１０のＩＰアドレス２７のホストアドレス部の値）が、所定値よりも大きいのか否かを判断する。上記の所定値は、以下のようにして決定される。生成部３６は、まず、Ｓ７０で特定されたホストアドレス部のビット数（以下では「ビット数」と簡単に呼ぶ）を特定する。図７の例では、ＩＰアドレス２７のホストアドレス部は、ＩＰアドレス２７の最後の５ビット「００００１」である。従って、生成部３６は、ビット数として「５」を特定する。次いで、生成部３６は、特定されたビット数で表現し得る数値範囲を特定する。例えば、５ビットで表現し得る数値範囲は、「０００００」〜「１１１１１」である。即ち、５ビットで表現し得る数値範囲は、１０進数で「０」〜「３１」である。次いで、生成部３６は、特定された数値範囲の中間値を特定する。例えば、「０」〜「３１」の中間値は、「１６」である。生成部３６は、この中間値「１６」を特定することによって、上記の所定値を決定する。上述したように、図７のＩＰアドレス２７のホストアドレス部の値「００００１」は、１０進数で「１」であり、上記の中間値「１６」より小さい。この場合、生成部３６は、Ｓ８０でＮＯと判断し、Ｓ８６に進む。一方において、例えば、Ｓ８０でＹＥＳの場合には、Ｓ８２に進む。
【００５０】
図４の処理が開始されてから１回目のＳ８２では、生成部３６は、まず、仮ホストアドレス部の初期値を決定する。ここでは、生成部３６は、Ｓ８０で特定されたビット数の全てのビットを「０」に設定することによって、仮ホストアドレス部の初期値を決定する。例えば、Ｓ８０で特定されたビット数が「５」である場合には、生成部３６は、仮ホストアドレス部の初期値として「０００００」を決定する。次いで、生成部３６は、決定された初期値（例えば「０００００」）に「１」を加算することによって、仮ホストアドレス部の値（例えば「００００１」）を決定する。なお、２回目以降のＳ８２では、生成部３６は、前回のＳ８２で決定された仮ホストアドレス部の値に「１」を加算することによって、新たな仮ホストアドレス部の値を決定する。例えば、ビット数が「５」である場合には、２回目のＳ８２では、生成部３６は、仮ホストアドレス部の値として「０００１０」を決定する。
【００５１】
次いで、生成部３６は、Ｓ８２で決定された仮ホストアドレス部の値を用いて、Ｓ７８で説明した第２の判断処理を実行する（Ｓ８４）。ここでＮＯの場合、Ｓ８５に進む。ここでＹＥＳの場合、ＩＰアドレス決定処理が終了する（エラーＥＮＤ）。Ｓ８５では、生成部３６は、Ｓ７８で説明した第３の判断処理を実行する（Ｓ８５）。ここでＮＯの場合、図５のＳ１００に進み、ここでＹＥＳの場合、生成部３６は、Ｓ７２以降の処理を再び実行し、新たな仮ホストアドレス部の値を生成する。
【００５２】
図４の処理が開始されてから１回目のＳ８６では、生成部３６は、まず、仮ホストアドレス部の初期値を決定する。ここで決定される初期値は、Ｓ８２で決定される初期値と異なる。即ち、生成部３６は、Ｓ８０で特定されたビット数の全てのビットを「１」に設定することによって、仮ホストアドレス部の初期値を決定する。例えば、Ｓ８０で特定されたビット数が「５」である場合には、生成部３６は、仮ホストアドレス部の初期値として「１１１１１」を決定する。次いで、生成部３６は、決定された初期値（例えば「１１１１１」）から「１」を減算することによって、仮ホストアドレス部の値（例えば「１１１１０」）を決定する。図７には、ここで決定される仮ホストアドレス部の値「１１１１０」が例示されている。なお、２回目以降のＳ８６では、生成部３６は、前回のＳ８６で決定された仮ホストアドレス部の値から「１」を減算することによって、新たな仮ホストアドレス部の値を決定する。例えば、２回目のＳ８６では、生成部３６は、仮ホストアドレス部の値として「１１１０１」を決定する。
【００５３】
次いで、生成部３６は、Ｓ８６で決定された仮ホストアドレス部の値を用いて、Ｓ７８で説明した第１の判断処理を実行する（Ｓ８８）。ここでＮＯの場合、Ｓ８５に進み、ここでＹＥＳの場合、ＩＰアドレス決定処理が終了する（エラーＥＮＤ）。なお、エラーＥＮＤの場合には、制御部３０は、図２及び図３の続きの処理を実行してもよいし、実行しなくてもよい。後者の場合、例えば、制御部３０は、図２のＳ３４又は図３のＳ４８をスキップし、Ｓ５０において適当なＩＰアドレス（例えば図２のＳ１６で読み込まれたプリンタ６０のＩＰアドレス）を用いて、プリンタポートを生成してもよい。これに代えて、例えば、制御部３０は、図２のＳ１６で読み込まれたプリンタ６０のノード名を用いて、プリンタポートを生成してもよい。
【００５４】
上述したように、Ｓ７８又はＳ８５でＮＯの場合は、端末装置１０のＩＰアドレス２７のホストアドレス部の値と異なる仮ホストアドレス部の値が決定されたことを意味する。Ｓ７８又はＳ８５でＮＯの場合には、図５のＳ１００に進む。Ｓ１００では、生成部３６は、仮の候補ＩＰアドレスを決定する。具体的には、生成部３６は、図４のＳ７０で特定されたネットワークアドレス部の値（即ち端末装置１０のＩＰアドレス２７のネットワークアドレス部の値）と、図４の処理（Ｓ７６、Ｓ８２、又は、Ｓ８６）で決定された仮ホストアドレス部の値と、を組み合わせることによって、仮の候補ＩＰアドレスを決定する。さらに具体的には、生成部３６は、ネットワークアドレス部の値と仮ホストアドレス部の値との論理和（ＯＲ）を計算することによって、仮の候補ＩＰアドレスを決定する。例えば、図６では、ネットワークアドレス部の値が、１０進数で「１９２．１６８．０」（先頭から２４ビット）であり、仮ホストアドレス部の値が、１０進数で「５」（最後の８ビット）である。上記のネットワークアドレス部の値の後に、全て「０」である８ビットの値を追加するすると、３２ビットのネットワークアドレス部を表現することができ、この場合、ネットワークアドレス部の値は、１０進数で「１９２．１６８．０．０」になる。また、上記の仮ホストアドレス部の値の前に、全て「０」である２４ビットの値を追加するすると、３２ビットの仮ホストアドレス部を表現することができ、この場合、仮ホストアドレス部の値は、１０進数で「０．０．０．５」になる。３２ビットの仮ホストアドレス部の先頭から２４ビットが全て「０」であるために、上記の論理和の先頭から２４ビットの値は、３２ビットのネットワークアドレス部の先頭から２４ビットの値（即ち１０進数で「１９２．１６８．０」）に一致する。また、３２ビットのネットワークアドレス部の最後の８ビットが全て「０」であるために、上記の論理和の最後の８ビットの値は、３２ビットの仮ホストアドレス部の最後の８ビットの値（即ち１０進数で「５」）に一致する。この結果、１０進数で「１９２．１６８．０．５」が、仮の候補ＩＰアドレスとして決定される。また、図７の例では、ＩＰアドレス２７の先頭から２７ビットの値が、ネットワークアドレス部の値であり、仮ホストアドレス部の値が、２進数で「１１１１０」（最後の５ビット）である。従って、上記の論理和では、先頭から２７ビットの値が、ＩＰアドレス２７の先頭から２７ビットの値に一致し、最後の５ビットの値が、２進数で「１１１１０」に一致する。この例では、上記の論理和の最後の８ビットは、「０００１１１１０」になるために、１０進数で「３０」になる。この結果、１０進数で「１９２．１６８．０．３０」が、仮の候補ＩＰアドレスとして決定される。
【００５５】
次いで、特定部３２（図１参照）は、記録媒体２０に含まれるテーブル２３から、全ての種類情報に対応するＩＰアドレスの範囲を読み込む（Ｓ１０２）。続いて、生成部３６は、Ｓ１００で決定された仮の候補ＩＰアドレスが、Ｓ１０２で読み込まれたいずれかの範囲に含まれるのか否かを判断する（Ｓ１０４）。仮の候補ＩＰアドレスが１個の範囲にでも含まれる場合には、生成部３６は、Ｓ１０４でＹＥＳと判断する。この場合、生成部３６は、図４のＳ７２以降の処理を再び実行し、新たな仮ホストアドレス部の値を生成する。仮の候補ＩＰアドレスがいずれの範囲にも含まれない場合には、生成部３６は、Ｓ１０４でＮＯと判断する。これにより、生成部３６は、仮の候補ＩＰアドレスを候補ＩＰアドレスとして決定する。
【００５６】
Ｓ１０４でＮＯの場合、確認部３８（図１参照）は、Ｓ１０４で決定された候補ＩＰアドレスを送信先として、所定の信号を送信する（Ｓ１０６）。次いで、確認部３８は、上記の所定の信号に対する応答信号を受信することを監視する（Ｓ１０８）。例えば、ＬＡＮ４に接続されているデバイス（例えばプリンタ６０以外のプリンタ）に上記の候補ＩＰアドレスが現在設定されている場合には、当該デバイスは、上記の所定の信号を受信し、上記の所定の信号に対する応答信号を送信する。この場合、確認部３８は、応答信号を受信するために、Ｓ１０８でＹＥＳと判断する。Ｓ１０８でＹＥＳの場合、生成部３６は、図４のＳ７２以降の処理を再び実行し、新たな仮ホストアドレス部の値を生成する。一方において、例えば、ＬＡＮ４に接続されているいずれのデバイスにも上記の候補ＩＰアドレスが現在設定されていない場合には、確認部３８は、上記の所定の信号に対する応答信号を受信しない。確認部３８は、上記の所定の信号を送信してから所定時間が経過しても応答信号を受信しない場合には、Ｓ１０８でＮＯと判断する。この場合、決定部３４は、上記の候補ＩＰアドレスを対象ＩＰアドレスとして決定し、対象ＩＰアドレス決定処理を終了する（正常ＥＮＤ）。
【００５７】
図２〜図５の処理について詳しく説明した。次いで、図３のＳ４４又はＳ５０で生成されるプリンタポートと、Ｓ５２でインストールされるプリンタドライバと、を用いて、印刷が実行される様子を簡単に説明しておく。ユーザは、プリンタ６０に印刷を実行させることを望む場合に、端末装置１０の操作部１２を操作することによって、印刷されるべき対象データを選択する。この場合、制御部３０は、記憶部２４に格納されているプリンタドライバを起動する。プリンタドライバは、対象データを、プリンタ６０が解釈可能なＰＤＬ（Page Description Language）データに変換する。上述したように、Ｓ５０で生成されるプリンタポートでは、プリンタ６０のＩＰアドレスが指定されている。Ｓ５０で生成されるプリンタポートが記憶部２４に格納されている場合には、制御部３０は、プリンタポートにおいて指定されているＩＰアドレスを送信先として、ＰＤＬデータを送信する。この結果、プリンタ６０は、ＰＤＬデータに従って、印刷を実行する。また、Ｓ４４で生成されるプリンタポートでは、プリンタ６０のノード名が指定されている。Ｓ４４で生成されるプリンタポートが記憶部２４に格納されている場合には、制御部３０は、プリンタポートにおいて指定されているノード名を用いて名前解決（図３のＳ４０の処理）を実行することによって、プリンタ６０のＩＰアドレスを取得する。制御部３０は、取得されたＩＰアドレスを送信先として、ＰＤＬデータを送信する。この結果、プリンタ６０は、ＰＤＬデータに従って、印刷を実行する。
【００５８】
本実施例のネットワークシステム２の構成について詳しく説明した。端末装置１０は、ＤＨＣＰサーバ等のＩＰアドレス割り当てサーバと区別されるデバイスである。即ち、ＩＰアドレス割り当てサーバは、他のデバイスからの要求を受けて、当該他のデバイスのためのＩＰアドレスを決定する（割り当てる）が、端末装置１０は、他のデバイス（例えばプリンタ６０）からの要求を受けずに、当該他のデバイスのための対象ＩＰアドレスを決定する。
【００５９】
端末装置１０は、自身と別体に構成されているプリンタ６０のための対象ＩＰアドレスを決定することができる。具体的には、端末装置１０は、自身と別体に構成されている外部のＩＰアドレス割り当てサーバが割り当て可能なＩＰアドレスの範囲を特定する（図５のＳ１０２）。しかも、端末装置１０は、複数種類の外部のＩＰアドレス割り当てサーバのそれぞれが割り当て可能なＩＰアドレスの範囲を特定する。端末装置１０は、上記のＩＰアドレスの範囲を用いて、対象ＩＰアドレスを決定する。即ち、端末装置１０は、上記のＩＰアドレスの範囲に含まれないＩＰアドレスを、候補ＩＰアドレスとして決定する（図４のＳ１０４でＮＯ）。この結果、外部のＩＰアドレス割り当てサーバ（例えばＤＨＣＰサーバ６２、ＢＯＯＴＰサーバ６４等）によってＬＡＮ４内の他のデバイスに割り当てられている可能性があるＩＰアドレスが、候補ＩＰアドレスとして決定されない。このために、図５のＳ１０６及びＳ１０８の確認処理において、候補ＩＰアドレスが他のデバイスに設定されているという確認結果（即ちＳ１０８でＹＥＳ）が得られる可能性が低い。即ち、仮の候補ＩＰアドレスを決定するための処理（図４の処理及び図５のＳ１００の処理）を再び実行しなければならない可能性が低い。この結果、端末装置１０は、プリンタ６０のための対象ＩＰアドレスを迅速に決定することができる。
【００６０】
さらに、端末装置１０は、自己のＩＰアドレス２７と、自己のサブネットマスク２８と、に基づいて、対象ＩＰアドレスを決定する。具体的には、端末装置１０は、まず、図４のＳ７０において、ＩＰアドレス２７及びサブネットマスク２８に基づいて、自己のネットワークアドレス部の値及び自己のホストアドレス部の値を特定する。さらに、端末装置１０は、図４のＳ７８及びＳ８５を実行することにより、自己のホストアドレス部の値と異なる仮ホストアドレス部の値を決定することができる。この結果、端末装置１０のＩＰアドレスに一致する仮の候補ＩＰアドレスが生成されない。即ち、仮の候補ＩＰアドレスから決定される対象ＩＰアドレスも、端末装置１０のＩＰアドレス２７に一致しない。また、端末装置１０は、自己のネットワークアドレス部の値と、仮ホストアドレス部の値と、を組み合わせることによって、仮の候補ＩＰアドレスを決定する（図５のＳ１００）。この結果、自己のネットワークアドレス部の値と異なるネットワークアドレス部の値を含むＩＰアドレス（以下では「特定のＩＰアドレス」と呼ぶ）が、仮の候補ＩＰアドレスとして決定されない。即ち、上記の特定のＩＰアドレスが、対象ＩＰアドレスとして決定されない。上述したように、本実施例では、端末装置１０のＩＰアドレス２７に一致するＩＰアドレス、又は、上記の特定のＩＰアドレスが、対象ＩＰアドレスとして決定されない。端末装置１０は、ＬＡＮ４内で適切に通信を実行し得るＩＰアドレス（即ち端末装置１０と適切に通信を実行し得るＩＰアドレス）を、対象ＩＰアドレスとして決定することができる。
【００６１】
また、図４のＳ７２でＮＯの場合は、仮ホストアドレス部の値として採り得る値の範囲が大きい（即ち選択肢が多い）ことを意味し、Ｓ７２でＹＥＳの場合は、仮ホストアドレス部の値として採り得る値の範囲が小さい（即ち選択肢が少ない）ことを意味する。端末装置１０は、選択肢が多い場合には、乱数を用いて、仮ホストアドレス部の値をランダムに決定する（図４のＳ７４〜Ｓ７８）。選択肢が多いということは、それらの選択肢の中に、図１のテーブル２３に登録されているＩＰアドレスの範囲に含まれない多くの値が存在し得る。従って、端末装置１０は、仮ホストアドレス部の値をランダムに決定することによって、上記のＩＰアドレスの範囲に含まれない仮の候補ＩＰアドレスを高い確率で生成することができる。一方において、端末装置１０は、選択肢が少ない場合には、乱数を用いずに、仮ホストアドレス部の値を決定する（図４のＳ８０〜Ｓ８８）。
【００６２】
即ち、端末装置１０は、ＤＨＣＰサーバ６２によって割り当てられる自己のＩＰアドレス２７のホストアドレス部の値が、上記の所定値（即ち図７の中間値）より大きい場合（図４のＳ８０でＹＥＳの場合）には、上記の所定値よりも小さい値を、仮ホストアドレス部の値として決定する。より具体的には、仮ホストアドレス部の値として採り得る値の範囲の最小値（例えば「００００１」）から順に選択される値を、仮ホストアドレス部の値として決定する。一方において、端末装置１０は、Ｓ８０でＮＯの場合には、上記の所定値よりも大きい値を、仮ホストアドレス部の値として決定する。より具体的には、仮ホストアドレス部の値として採り得る値の範囲の最大値（例えば「１１１１０」）から順に選択される値を、仮ホストアドレス部の値として決定する。ＩＰアドレス２７のホストアドレス部の値が上記の所定値より大きい（又は小さい）場合には、ＤＨＣＰサーバ６２は、自己が割り当て可能なＩＰアドレスの範囲のうち、大きい値（又は小さい値）から順に割り当てるタイプのサーバである可能性が高い。従って、仮に、ＤＨＣＰサーバ６２によってＬＡＮ４内の他のデバイスにＩＰアドレスが割り当てられている場合には、そのＩＰアドレスのホストアドレス部の値が上記の所定値より大きい（又は小さい）可能性が高い。本実施例では、Ｓ８０の判断結果に応じて、上記の所定値よりも小さい値又は大きい値が、仮ホストアドレス部の値として決定されるために、ＤＨＣＰサーバ６２によって他のデバイスに割り当てられている可能性が低い値が、仮ホストアドレス部の値として決定される。このために、図５のＳ１０８でＹＥＳと判断される可能性が低く、この結果、仮の候補ＩＰアドレスを決定するための処理を再び実行しなければならない可能性が低い。
【００６３】
なお、上記の最小値は「００００１」に設定されるが、最小値が「０００００」に設定されてもよい。即ち、図４の１回目のＳ８２では、「０００００」が仮ホストアドレス部の値として決定されてもよい。また、上記の最大値が「１１１１１」でないのは、ブロードキャスト通信では、送信先のＩＰアドレスのホストアドレス部の全てのビットが「１」に設定されることから、全てのビットが「１」である値は、通常、デバイスのホストアドレス部の値として利用されないからである。
【００６４】
また、端末装置１０は、図３のＳ４６で対象ＩＰアドレスが決定された場合に、当該対象ＩＰアドレスをプリンタ６０に供給（設定）する（Ｓ４８）。この構成によると、対象ＩＰアドレスをプリンタ６０に入力する作業をユーザが実行せずに済む。ユーザの作業負担を軽減することができる。なお、図３のＳ４６で対象ＩＰアドレスが決定された場合に、端末装置１０は、図３のＳ４８に代えて、図２のＳ３４と同様の手法を用いて、当該対象ＩＰアドレスをユーザに提示してもよい。
【００６５】
また、本実施例では、プリンタ６０の設定手法情報が「Ｓｔａｔｉｃ」を示す場合に、端末装置１０は、プリンタ６０に現在設定されているＩＰアドレスを用いて、プリンタポートを生成する（図３のＳ５０）。「Ｓｔａｔｉｃ」の場合には、プリンタ６０のＩＰアドレスは、通常、変更されない。ユーザ自身によって入力されたＩＰアドレスがプリンタ６０に設定されるからである。このために、ＩＰアドレスを用いてポートが生成されても、プリンタ６０のＩＰアドレスが変更されることに起因して、新たなプリンタポートが生成されるのを抑制することができる。一方において、「Ｓｔａｔｉｃ」以外の設定手法は、「ＤＨＣＰ」と「ＢＯＯＴＰ」とを含む。これらの設定手法では、プリンタ６０のＩＰアドレスが変更される可能性が高い。例えば、プリンタ６０の電源がＯＮされる毎に、プリンタ６０に新たなＩＰアドレスが設定される。このために、仮に、ＩＰアドレスを用いてプリンタポートが生成されると、ＩＰアドレスの変更に伴って新たなプリンタポートを生成する必要がある。従って、本実施例では、プリンタ６０のＩＰアドレスの設定手法が「Ｓｔａｔｉｃ」以外の設定手法である場合には、端末装置１０は、プリンタ６０に現在設定されているノード名を用いて、プリンタポートを生成する（図３のＳ４４）。プリンタ６０のノード名は、通常、変更されない。このために、ノード名を用いてプリンタポートを生成すれば、新たなプリンタポートが生成されるのを抑制することができる。ただし、ノード名を用いて名前解決を試行してもＩＰアドレスを取得不可能である場合（図３のＳ４０でＮＯの場合）、又は、名前解決が適切に機能しない場合（Ｓ４２でＮＯの場合）には、端末装置１０は、プリンタ６０に設定されるべき対象ＩＰアドレスを決定し（Ｓ４６）、当該対象ＩＰアドレスを用いて、プリンタポートを生成する（Ｓ５０）。名前解決によって適切なＩＰアドレスが得られないノード名を用いて、プリンタポートが生成されるのを抑制することができる。
【００６６】
上記の実施例の構成と本発明の構成との対応関係を記載しておく。プリンタ６０が「対象デバイス」の一例であり、端末装置１０が「ＩＰアドレス決定装置」及び「端末装置」の一例である。ＩＰアドレス２７、サブネットマスク２８が、それぞれ、「特定のＩＰアドレス」、「特定のサブネットマスク」の一例である。また、図６及び図７の仮ホストアドレス部の値が「特定の値」の一例であり、図４のＳ７２で利用される「ＦＦ．ＦＦ．ＦＦ．Ｃ０」、図４のＳ８０で利用される所定値（即ち図７の中間値）が、それぞれ、「第１の所定値」、「第２の所定値」の一例である。なお、本実施例では、サブネットマスク２８の値が「ＦＦ．ＦＦ．ＦＦ．Ｃ０」（即ち「第１の所定値」）に等しい場合に、図４のＳ７２でＮＯと判断されるが、Ｓ７２でＹＥＳと判断されてもよい。また、図４のＳ７０で特定されたホストアドレス部の値が上記の所定値（即ち「第２の所定値」）に等しい場合には、図４のＳ８０でＮＯと判断されるが、Ｓ８０でＹＥＳと判断されてもよい。
【００６７】
また、図４のＳ８２の仮ホストアドレス部の初期値＋１と、図４のＳ８６の仮ホストアドレス部の初期値−１と、の間の範囲（例えば「００００１」〜「１１１１０」）が、「仮の候補ＩＰアドレスのホストアドレス部の値として採り得る値の範囲」の一例である。従って、図４のＳ８２の仮ホストアドレス部の初期値＋１（例えば「００００１」）が「最小値」の一例であり、図４のＳ８６の仮ホストアドレス部の初期値−１（例えば「１１１１０」）が「最大値」の一例である。なお、上述したように、変形例では、全てのビットが「０」である値（例えば「０００００」）を最小値として採用してもよい。この場合、図４のＳ８２の仮ホストアドレス部の初期値と、図４のＳ８６の仮ホストアドレス部の初期値−１と、の間の範囲（例えば「０００００」〜「１１１１０」）が、「仮の候補ＩＰアドレスのホストアドレス部の値として採り得る値の範囲」の一例である。
【００６８】
また、図２のＳ３６でＮＯと判断される設定手法、即ち、「ＤＨＣＰ」、「ＢＯＯＴＰ」、「ＲＡＲＰ」、及び、「ＡＵＴＯ」が、「特定の設定手法」の一例である。なお、本実施例では、図２のＳ３６において、設定手法「Ｓｔａｔｉｃ」であるのか否かを判断するが、これに代えて、設定手法「Ｓｔａｔｉｃ」又は「ＲＡＲＰ」であるのか否かを判断してもよい。本変形例では、図２のＳ１６で読み込まれた設定手法情報が、設定手法「ＲＡＲＰ」を示す場合にも、Ｓ３６でＹＥＳと判断される。この場合、図３のＳ５０において、図２のＳ１６で読み込まれたプリンタ６０のＩＰアドレスを用いて、プリンタポートが生成される。本変形例の場合には、「ＤＨＣＰ」、「ＢＯＯＴＰ」、及び、「ＡＵＴＯ」が、「特定の設定手法」の一例である。
【００６９】
上記の実施例の変形例を以下に列挙する。
（１）上記の実施例の技術は、ＩＰｖ６（Internet Protocol version6）又は他のバージョンのＩＰアドレスについても適用可能である。
【００７０】
（２）特定部３２は、外部のＩＰアドレス割り当てサーバが割り当て可能なＩＰアドレスの範囲をテーブル２３から特定しなくてもよい。例えば、特定部３２は、ＬＡＮ４に接続されているＩＰアドレス割り当てサーバ（ＤＨＣＰサーバ６２、ＢＯＯＴＰサーバ６４等（ＤＨＣＰサーバ機能を有するアクセスポイントを含む））から、当該ＩＰアドレス割り当てサーバが割り当て可能なＩＰアドレスの範囲を取得することによって、ＩＰアドレスの範囲を特定してもよい。また、例えば、複数種類のＩＰアドレス割り当てサーバのそれぞれが割り当て可能なＩＰアドレスの範囲を公開しているサーバが、ＬＡＮ４又は他のネットワーク（例えばインターネット）に存在する場合には、特定部３２は、当該サーバからＩＰアドレスの範囲を取得することによって、ＩＰアドレスの範囲を特定してもよい。
【００７１】
（３）図４のＳ７８の第３の判断処理（Ｓ７６で生成された仮ホストアドレス部の値が、Ｓ７０で特定されたホストアドレス部の値に一致するのか否かを判断する処理）、及び、図４のＳ８５の第３の判断処理を省略してもよい。この場合、仮に、図５のＳ１０４で決定される候補ＩＰアドレスが端末装置１０のＩＰアドレス２７に一致すると、図５のＳ１０６では、端末装置１０は、上記の所定の信号を、自身に向けて送信する。この場合、端末装置１０は、上記の所定の信号に対する応答信号を、自身に向けて送信する。これにより、端末装置１０は、応答信号を受信するためにＳ１０８でＹＥＳと判断し、図４のＳ７２以降の処理を再び実行する。即ち、端末装置１０は、対象ＩＰアドレスを決定する過程において、自身のＩＰアドレス２７のホストアドレス部の値と異なる仮ホストアドレス部の値を少なくとも１回生成する。従って、本変形例の構成（図４のＳ７８及びＳ８５の第３の判断処理を省略する構成）も、本発明の「前記特定のＩＰアドレスのネットワークアドレス部の値と、前記特定のＩＰアドレスのホストアドレス部の値とは異なる特定の値と、を組み合わせることによって、仮の候補ＩＰアドレスを生成し」という構成に含まれる。
【００７２】
（４）図４のＳ７２〜Ｓ７８の処理を省略してもよい。即ち、生成部３６は、サブネットマスク２８の値の大きさに関わらず、Ｓ８０〜Ｓ８８の処理を実行してもよい。逆に、図４のＳ７２、Ｓ８０〜Ｓ８８を省略してもよい。即ち、生成部３６は、サブネットマスク２８の値の大きさに関わらず、Ｓ７４〜Ｓ７８の処理を実行してもよい。
【００７３】
（５）デバイスドライバは、記録媒体２０からインストールされなくてもよい。例えば、端末装置１０のＯＳプログラム２６は、プリンタ６０のためのデバイスドライバを含んでいてもよい。この場合、インストール部４６は、ＯＳプログラム２６に含まれるデバイスドライバを記憶部２４内の所定の領域に格納することによって、デバイスドライバをインストールしてもよい。
【００７４】
（６）上記の各実施例の技術は、プリンタドライバとは異なる他のデバイスドライバが端末装置１０にインストールされる場合にも適用することできる。他のデバイスドライバの例として、例えば、スキャナドライバを挙げることができる。
【００７５】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
【００７６】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００７７】
２：ネットワークシステム、１０：端末装置、１８：記録媒体読取部、２０：記録媒体、２２：プログラム、２３：テーブル、３０：制御部、６０：プリンタ
【図１】
2011077596.tif 000003
【図２】
2011077596.tif 000004
【図３】
2011077596.tif 000005
【図４】
2011077596.tif 000006
【図５】
2011077596.tif 000007
【図６】
2011077596.tif 000008
【図７】
2011077596.tif 000009