(57)【特許請求の範囲】
【請求項１】
ローカルエリアネットワークを介して、特定のＩＰアドレスを有する外部装置と通信する通信装置であって、
前記外部装置からブロードキャスト通信によって送信される特定の信号であって、前記通信装置を識別するための識別情報と、前記特定のＩＰアドレスと、を含む前記特定の信号を受信する受信部と、
前記識別情報を含む前記特定の信号が受信される場合に、前記通信装置が、前記通信装置自身の現在のＩＰアドレスである第１のＩＰアドレスと、前記特定の信号に含まれる前記特定のＩＰアドレスと、を用いたユニキャスト通信を、前記外部装置と実行可能であるのか否かを判断する判断部と、
前記通信装置が前記ユニキャスト通信を前記外部装置と実行不可能であると判断される特定の場合に、前記ブロードキャスト通信によって受信された前記特定の信号に含まれる前記特定のＩＰアドレスを利用して、前記通信装置のＩＰアドレスを、前記第１のＩＰアドレスから、前記第１のＩＰアドレスと異なる第２のＩＰアドレスに変更する変更部と、
を備える通信装置。
【請求項２】
前記変更部は、ユーザからの指示を受けることなく、前記通信装置の前記ＩＰアドレスを、前記第１のＩＰアドレスから前記第２のＩＰアドレスに変更する、請求項１に記載の通信装置。
【請求項３】
前記特定のＩＰアドレスの値が、ＩＰアドレスを生成するための所定のアルゴリズムによって生成され得るＩＰアドレスの値の範囲に含まれる場合に、前記所定のアルゴリズムを用いて、前記第２のＩＰアドレスを生成する第１の生成部をさらに備え、
前記変更部は、前記特定の場合に、前記通信装置の前記ＩＰアドレスを、前記第１のＩＰアドレスから、生成済みの前記第２のＩＰアドレスに変更する、請求項２に記載の通信装置。
【請求項４】
前記特定のＩＰアドレスの全部の値のうちの一部を変更することによって、前記特定のＩＰアドレスから前記第２のＩＰアドレスを生成する第２の生成部をさらに備え、
前記変更部は、前記特定の場合に、前記通信装置の前記ＩＰアドレスを、前記第１のＩＰアドレスから、生成済みの前記第２のＩＰアドレスに変更する、請求項２に記載の通信装置。
【請求項５】
前記第２のＩＰアドレスが、前記ローカルエリアネットワークに接続されている他のデバイスのＩＰアドレスであるのか否かを確認する確認部をさらに備え、
前記変更部は、
前記特定の場合において、前記第２のＩＰアドレスが前記他のデバイスのＩＰアドレスでないと確認される場合に、前記通信装置の前記ＩＰアドレスを、前記第１のＩＰアドレスから、前記第２のＩＰアドレスに変更し、
前記特定の場合において、前記第２のＩＰアドレスが前記他のデバイスのＩＰアドレスであると確認される場合に、前記通信装置の前記ＩＰアドレスを、前記第１のＩＰアドレスから、前記第１及び第２のＩＰアドレスと異なるＩＰアドレスに変更する、請求項１，２及び４のいずれか一項に記載の通信装置。
【請求項６】
前記判断部は、
前記特定のＩＰアドレスが送信先として含まれる第１の信号であって、前記第１のＩＰアドレスが送信元として含まれる前記第１の信号を送信して、前記第１の信号の応答信号を受信した場合に、前記通信装置が前記ユニキャスト通信を前記外部装置と実行可能であると判断し、
前記第１の信号を送信して、前記第１の信号の前記応答信号を受信しなかった場合に、前記通信装置が前記ユニキャスト通信を前記外部装置と実行不可能であると判断する、請求項１から５のいずれか一項に記載の通信装置。
【請求項７】
前記判断部は、
前記第１のＩＰアドレスのネットワークアドレス部の値と、前記特定のＩＰアドレスのネットワークアドレス部の値と、が一致する場合に、前記通信装置が前記ユニキャスト通信を前記外部装置と実行可能であると判断し、
前記第１のＩＰアドレスの前記ネットワークアドレス部の前記値と、前記特定のＩＰアドレスの前記ネットワークアドレス部の前記値と、が一致しない場合に、前記通信装置が前記ユニキャスト通信を前記外部装置と実行不可能であると判断する、請求項１から６のいずれか一項に記載の通信装置。
【請求項８】
前記通信装置の前記ＩＰアドレスが、前記第１のＩＰアドレスから前記第２のＩＰアドレスに変更された後に、前記特定のＩＰアドレスが送信先として含まれる第２の信号であって、前記第２のＩＰアドレスが送信元として含まれる前記第２の信号を送信する送信部をさらに備える、請求項１から７のいずれか一項に記載の通信装置。
【請求項９】
ローカルエリアネットワークを介して、特定のＩＰアドレスを有する外部装置と通信する通信装置のためのコンピュータプログラムであって、
前記通信装置に搭載されるコンピュータに、
前記外部装置からブロードキャスト通信によって送信される特定の信号であって、前記通信装置を識別するための識別情報と、前記特定のＩＰアドレスと、を含む前記特定の信号を受信する受信処理と、
前記識別情報を含む前記特定の信号が受信される場合に、前記通信装置が、前記通信装置自身の現在のＩＰアドレスである第１のＩＰアドレスと、前記特定の信号に含まれる前記特定のＩＰアドレスと、を用いたユニキャスト通信を、前記外部装置と実行可能であるのか否かを判断する判断処理と、
前記通信装置が前記ユニキャスト通信を前記外部装置と実行不可能であると判断される特定の場合に、前記ブロードキャスト通信によって受信された前記特定の信号に含まれる前記特定のＩＰアドレスを利用して、前記通信装置のＩＰアドレスを、前記第１のＩＰアドレスから、前記第１のＩＰアドレスと異なる第２のＩＰアドレスに変更する変更処理と、
を実行させるコンピュータプログラム。
【請求項１０】
ローカルエリアネットワークを介して、特定のＩＰアドレスを有する外部装置と通信する通信装置であって、
前記通信装置の過去のＩＰアドレスを得るために利用されたＩＰアドレス設定手法を示す手法情報を格納するための手法メモリであって、前記過去のＩＰアドレスは、前記外部装置とのユニキャスト通信を実行可能であったＩＰアドレスである、前記手法メモリと、
前記外部装置からブロードキャスト通信によって送信される特定の信号であって、前記特定のＩＰアドレスを含む前記特定の信号を受信する受信部と、
前記特定の信号が受信される場合に、前記通信装置が、前記通信装置自身の現在のＩＰアドレスである第１のＩＰアドレスと、前記特定の信号に含まれる前記特定のＩＰアドレスと、を用いたユニキャスト通信を、前記外部装置と実行可能であるのか否かを判断する判断部と、
前記通信装置が前記ユニキャスト通信を前記外部装置と実行不可能であると判断される特定の場合に、ユーザからの指示を受けることなく、前記通信装置のＩＰアドレスを、前記第１のＩＰアドレスから、前記第１のＩＰアドレスと異なる第２のＩＰアドレスであって、前記手法メモリ内の前記手法情報が示す前記ＩＰアドレス設定手法を利用して得られる前記第２のＩＰアドレスに変更する変更部と、
を備える通信装置。
【請求項１１】
ローカルエリアネットワークを介して、特定のＩＰアドレスを有する外部装置と通信する通信装置のためのコンピュータプログラムであって、
前記通信装置は、前記通信装置の過去のＩＰアドレスを得るために利用されたＩＰアドレス設定手法を示す手法情報を格納するための手法メモリであって、前記過去のＩＰアドレスは、前記外部装置とのユニキャスト通信を実行可能であったＩＰアドレスである、前記手法メモリを備え、
前記通信装置に搭載されるコンピュータに、
前記外部装置からブロードキャスト通信によって送信される特定の信号であって、前記特定のＩＰアドレスを含む前記特定の信号を受信する受信処理と、
前記特定の信号が受信される場合に、前記通信装置が、前記通信装置自身の現在のＩＰアドレスである第１のＩＰアドレスと、前記特定の信号に含まれる前記特定のＩＰアドレスと、を用いたユニキャスト通信を、前記外部装置と実行可能であるのか否かを判断する判断処理と、
前記通信装置が前記ユニキャスト通信を前記外部装置と実行不可能であると判断される特定の場合に、ユーザからの指示を受けることなく、前記通信装置のＩＰアドレスを、前記第１のＩＰアドレスから、前記第１のＩＰアドレスと異なる第２のＩＰアドレスであって、前記手法メモリ内の前記手法情報が示す前記ＩＰアドレス設定手法を利用して得られる前記第２のＩＰアドレスに変更する変更処理と、
を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書によって開示される技術は、ローカルエリアネットワークを介して、外部装置と通信する通信装置に関する。
【背景技術】
【０００２】
例えば、特許文献１には、ＰＣと複数個のプリンタとがローカルエリアネットワークに接続されているシステムが開示されている。ＰＣは、ＳＮＭＰのＧＥＴコマンドをブロードキャストすることによって、各プリンタから、各プリンタのＩＰアドレスを取得する。ＰＣは、例えば、ＰＣと異なるネットワークアドレスを含むＩＰアドレスを有する１個以上のプリンタを表示する。ユーザは、ＰＣの操作部を操作して、１個以上のプリンタの中から特定のプリンタを選択すると共に、ＩＰアドレスを入力する。ＰＣは、ユーザによって入力されたＩＰアドレスを含むＳＮＭＰのＳＥＴコマンドをブロードキャストする。これにより、特定のプリンタは、特定のプリンタ自身のＩＰアドレスを、ユーザによって入力されたＩＰアドレスに変更する。この結果、特定のプリンタは、ＰＣとのユニキャスト通信を実行可能な状態になり得る。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２６４５５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術では、プリンタは、ＰＣからの指示がなければ、プリンタのＩＰアドレスを変更しない。即ち、プリンタは、ＰＣとのユニキャスト通信を実行可能な状態になるために、プリンタのＩＰアドレスを主体的に変更しない。
【０００５】
本明細書では、通信装置が、外部装置とのユニキャスト通信を実行可能な状態になるために、通信装置のＩＰアドレスを主体的に変更し得る技術を提供する。
【課題を解決するための手段】
【０００６】
本明細書では、ローカルエリアネットワークを介して、特定のＩＰアドレスを有する外部装置と通信する通信装置を開示する。通信装置は、受信部と、判断部と、変更部と、を備える。受信部は、外部装置からブロードキャスト通信によって送信される特定の信号であって、特定のＩＰアドレスを含む特定の信号を受信する。判断部は、特定の信号が受信される場合に、通信装置が、通信装置自身の現在のＩＰアドレスである第１のＩＰアドレスと、特定の信号に含まれる特定のＩＰアドレスと、を用いたユニキャスト通信を、外部装置と実行可能であるのか否かを判断する。変更部は、通信装置がユニキャスト通信を外部装置と実行不可能であると判断される特定の場合に、通信装置のＩＰアドレスを、第１のＩＰアドレスから、第１のＩＰアドレスと異なる第２のＩＰアドレスに変更する。
【０００７】
上記の構成では、通信装置は、外部装置からブロードキャストされる特定の信号を受信する場合に、外部装置とのユニキャスト通信を実行可能であるのか否かを判断する。通信装置は、外部装置とのユニキャスト通信を実行不可能であると判断する場合に、通信装置のＩＰアドレスを変更する。通信装置のＩＰアドレスが変更されるために、通信装置と外部装置とがユニキャスト通信を実行可能な状態になり得る。しかも、通信装置は、上記の判断を実行するために、通信装置のＩＰアドレスを変更する必要があるのか否かを主体的に判断することができる。従って、通信装置は、通信装置のＩＰアドレスを変更する必要があると判断する場合（即ち、外部装置とのユニキャスト通信を実行不可能であると判断する場合）に、例えば外部装置からの指示を受けなくても、通信装置のＩＰアドレスを主体的に変更し得る。
【０００８】
変更部は、ユーザからの指示を受けることなく、通信装置のＩＰアドレスを、第１のＩＰアドレスから第２のＩＰアドレスに変更してもよい。この構成によると、通信装置は、ユーザからの指示（例えば外部装置からの指示）を受けなくても、通信装置のＩＰアドレスを主体的に変更し得る。
【０００９】
外部装置とのユニキャスト通信を実行可能な適切なＩＰアドレスを通信装置に設定するために、以下の（Ａ）〜（Ｅ）のいずれかの手法を採用してもよい。
【００１０】
（Ａ）通信装置は、ローカルエリアネットワークに接続される各デバイスにＩＰアドレスを割り当てるＩＰアドレス割当サーバから、第２のＩＰアドレスを取得する取得部をさらに備えていてもよい。変更部は、特定の場合に、通信装置のＩＰアドレスを、第１のＩＰアドレスから、取得済みの第２のＩＰアドレスに変更してもよい。
【００１１】
（Ｂ）通信装置は、特定のＩＰアドレスの値が、ＩＰアドレスを生成するための所定のアルゴリズムによって生成され得るＩＰアドレスの値の範囲に含まれる場合に、上記の所定のアルゴリズムを用いて、第２のＩＰアドレスを生成する第１の生成部をさらに備えていてもよい。変更部は、特定の場合に、通信装置のＩＰアドレスを、第１のＩＰアドレスから、生成済みの第２のＩＰアドレスに変更してもよい。
【００１２】
（Ｃ）通信装置は、特定のＩＰアドレスの全部の値のうちの一部を変更することによって、特定のＩＰアドレスから第２のＩＰアドレスを生成する第２の生成部をさらに備えていてもよい。変更部は、特定の場合に、通信装置のＩＰアドレスを、第１のＩＰアドレスから、生成済みの第２のＩＰアドレスに変更してもよい。
【００１３】
（Ｄ）通信装置は、通信装置の過去のＩＰアドレスである第３のＩＰアドレスを得るために利用されたＩＰアドレス設定手法を示す手法情報を格納するための手法メモリをさらに備えていてもよい。第３のＩＰアドレスは、外部装置とのユニキャスト通信を実行可能であったＩＰアドレスであってもよい。変更部は、特定の場合に、通信装置のＩＰアドレスを、第１のＩＰアドレスから、手法メモリ内の手法情報が示すＩＰアドレス設定手法を利用して得られる第２のＩＰアドレスに変更してもよい。
【００１４】
（Ｅ）通信装置は、通信装置の過去のＩＰアドレスである第２のＩＰアドレスを格納するためのアドレスメモリをさらに備えていてもよい。第２のＩＰアドレスは、外部装置とのユニキャスト通信を実行可能であったＩＰアドレスであってもよい。変更部は、特定の場合に、通信装置のＩＰアドレスを、第１のＩＰアドレスから、アドレスメモリ内の第２のＩＰアドレスに変更してもよい。
【００１５】
通信装置は、第２のＩＰアドレスが、ローカルエリアネットワークに接続されている他のデバイスのＩＰアドレスであるのか否かを確認する確認部をさらに備えていてもよい。変更部は、特定の場合において、第２のＩＰアドレスが他のデバイスのＩＰアドレスでないと確認される場合に、通信装置のＩＰアドレスを、第１のＩＰアドレスから、第２のＩＰアドレスに変更し、特定の場合において、第２のＩＰアドレスが他のデバイスのＩＰアドレスであると確認される場合に、通信装置のＩＰアドレスを、第１のＩＰアドレスから、第１及び第２のＩＰアドレスと異なるＩＰアドレスに変更してもよい。この構成によると、通信装置と他のデバイスとの両方に同じＩＰアドレスが設定されることを抑制することができる。
【００１６】
判断部は、特定のＩＰアドレスが送信先として含まれる第１の信号であって、第１のＩＰアドレスが送信元として含まれる第１の信号を送信して、第１の信号の応答信号を受信した場合に、通信装置がユニキャスト通信を外部装置と実行可能であると判断し、第１の信号を送信して、第１の信号の応答信号を受信しなかった場合に、通信装置がユニキャスト通信を外部装置と実行不可能であると判断してもよい。この構成によると、通信装置は、外部装置とのユニキャスト通信を実行可能であるのか否かについて、適切な判断を実行し得る。
【００１７】
判断部は、第１のＩＰアドレスのネットワークアドレス部の値と、特定のＩＰアドレスのネットワークアドレス部の値と、が一致する場合に、通信装置がユニキャスト通信を外部装置と実行可能であると判断し、第１のＩＰアドレスのネットワークアドレス部の値と、特定のＩＰアドレスのネットワークアドレス部の値と、が一致しない場合に、通信装置がユニキャスト通信を外部装置と実行不可能であると判断してもよい。この構成によると、通信装置は、外部装置とのユニキャスト通信を実行可能であるのか否かについて、適切な判断を実行し得る。
【００１８】
通信装置は、通信装置のＩＰアドレスが、第１のＩＰアドレスから第２のＩＰアドレスに変更された後に、特定のＩＰアドレスが送信先として含まれる第２の信号であって、第２のＩＰアドレスが送信元として含まれる第２の信号を送信する送信部をさらに備えていてもよい。この構成によると、通信装置は、特定のＩＰアドレスと、第２のＩＰアドレスと、を用いたユニキャスト通信を、外部装置と実行し得る。
【００１９】
なお、上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。
【図面の簡単な説明】
【００２０】
【図１】通信システムの構成の一例を示す。
【図２】メイン処理のフローチャートを示す。
【図３】ＩＰアドレス変更処理のフローチャートを示す。
【図４】成功手法処理のフローチャートを示す。
【図５】ユニキャスト通信を実行不可能なケースの一例を示す。
【発明を実施するための形態】
【００２１】
（実施例）
（システムの構成）
図１に示されるように、通信システム２は、プリンタ１０（ＰＣ８０の周辺機器）と、ＰＣ８０と、ＤＨＣＰ（Dynamic Host Configuration Protocol）サーバ９０と、を備える。各デバイス１０，８０，９０は、ＬＡＮ４に接続されている。各デバイス１０，８０，９０は、ＬＡＮ４を介して、相互に通信可能である。
【００２２】
（プリンタ１０の構成）
プリンタ１０は、操作部１２と、表示部１４と、印刷実行部１６と、ネットワークインターフェイス１８と、制御部２０と、を備える。上記の各部１２〜２０は、バス線１９に接続されている。操作部１２は、複数のキーによって構成される。ユーザは、操作部１２を操作することによって、様々な指示をプリンタ１０に入力することができる。表示部１４は、様々な情報を表示するためのディスプレイである。印刷実行部１６は、インクジェットヘッド方式、レーザ方式等の印刷機構を備え、制御部２０からの指示に従って印刷を実行する。ネットワークインターフェイス１８は、ＬＡＮ４に接続されている。
【００２３】
制御部２０は、ＣＰＵ２２とメモリ３０とを備える。ＣＰＵ２２は、メモリ３０に格納されているプログラム（図示省略）に従って、様々な処理を実行する。ＣＰＵ２２が当該プログラムに従って処理を実行することによって、各部５０〜６４の機能が実現される。メモリ３０は、不揮発性メモリ、揮発性メモリ等によって構成される。メモリ３０は、設定記憶領域３２と、成功手法記憶領域３４と、成功ＩＰ記憶領域３６と、受信ＩＰ記憶領域３８と、を備える。
【００２４】
設定記憶領域３２は、プリンタ１０の現在のＩＰアドレスと、プリンタ１０の現在のサブネットマスクと、プリンタ１０の現在のＩＰアドレス設定手法を示す手法情報と、を記憶する。なお、詳しくは後述するが、本実施例では、ＩＰアドレス設定手法として、５種類の手法（「ＳＴＡＴＩＣ」、「ＤＨＣＰ」、「ＢＯＯＴＰ（Bootstrap Protocol）」、「ＲＡＲＰ（Reverse Address Resolution Protocol）」、及び、「ＡＰＩＰＡ（Automatic Private IP Addressing）」）が存在する。
【００２５】
成功手法記憶領域３４は、ＰＣ８０とのユニキャスト通信を実行可能であったプリンタ１０の過去のＩＰアドレスを得るために利用されたＩＰアドレス設定手法（以下では「成功手法」と呼ぶ）を示す手法情報を記憶する。本実施例では、成功手法記憶領域３４は、最新の１個の成功手法を示す手法情報を記憶する。ただし、変形例では、成功手法記憶領域３４は、複数個の成功手法を示す複数個の手法情報を記憶可能であってもよい。
【００２６】
成功ＩＰ記憶領域３６は、ＰＣ８０とのユニキャスト通信を実行可能であったプリンタ１０の過去のＩＰアドレス（以下では「成功ＩＰアドレス」と呼ぶ）を記憶する。特に、成功ＩＰ記憶領域３６は、「ＳＴＡＴＩＣ」に従って設定された成功ＩＰアドレスを記憶する。成功ＩＰ記憶領域３６は、最新の１個の成功ＩＰアドレスを記憶する。ただし、変形例では、成功ＩＰ記憶領域３６は、複数個の成功ＩＰアドレスを記憶可能であってもよい。なお、成功ＩＰ記憶領域３６は、成功ＩＰアドレスと同時に利用されていたプリンタ１０の過去のサブネットマスクも記憶する。
【００２７】
受信ＩＰ記憶領域３８は、プリンタ１０が過去に受信したパケットに含まれる送信元ＩＰアドレスを記憶する。受信ＩＰ記憶領域３８が記憶可能なＩＰアドレスの数は、予め決められている（以下では「所定数」と呼ぶ）。制御部２０は、受信ＩＰ記憶領域３８に上記の所定数のＩＰアドレスが記憶されている状態で新たなパケットを受信すると、受信ＩＰ記憶領域３８に記憶されている最も古いＩＰアドレスを削除し、当該新たなパケットに含まれる送信元ＩＰアドレスを受信ＩＰ記憶領域３８に記憶させる。
【００２８】
（ＰＣ８０の構成）
ＰＣ８０は、図示省略の操作部、表示部、制御部等を備える。ＰＣ８０には、プリンタ１０のためのプリンタドライバがインストールされている。プリンタドライバがＰＣ８０にインストールされる際に、プリンタポートが生成される。プリンタポートでは、プリンタ１０のノード名が指定されている。ユーザは、ＰＣ８０の操作部を操作して、印刷対象のデータ（以下では「印刷データ」と呼ぶ）を選択することができる。この場合、ＰＣ８０の制御部は、印刷データをプリンタ１０で印刷させるための処理（後述する）を実行する。
【００２９】
（ＤＨＣＰサーバ９０の構成）
ＤＨＣＰサーバ９０は、ＬＡＮ４に接続されているデバイス（例えば、プリンタ１０、ＰＣ８０等）からの要求に応じて、上記のデバイスにＩＰアドレス及びサブネットマスクを割り当てる。例えば、プリンタ１０のＩＰアドレス設定手法が「ＤＨＣＰ」である場合には、プリンタ１０の制御部２０は、ＩＰアドレスの割り当てを要求するコマンドをＤＨＣＰサーバ９０に送信する。この場合、ＤＨＣＰサーバ９０は、予め決められているＩＰアドレスの範囲内から選択されるＩＰアドレスと、予め決められているサブネットマスクと、をプリンタ１０に割り当てる（送信する）。これにより、プリンタ１０の制御部２０は、ＤＨＣＰサーバ９０からＩＰアドレス及びサブネットマスクを取得して、プリンタ１０の設定値として記憶することができる（即ち設定記憶領域３２に記憶させることができる）。同様に、ＰＣ８０の制御部は、ＤＨＣＰサーバ９０からＩＰアドレス及びサブネットマスクを取得して、ＰＣ８０の設定値として記憶することができる。
【００３０】
（プリンタ１０のＩＰアドレス設定手法）
上述したように、プリンタ１０のＩＰアドレス設定手法として、「ＳＴＡＴＩＣ」、「ＤＨＣＰ」、「ＢＯＯＴＰ」、「ＲＡＲＰ」、及び、「ＡＰＩＰＡ」が存在する。ユーザは、プリンタ１０の操作部１２を操作することによって、上記の５種類のＩＰアドレス設定手法の中から、１種類のＩＰアドレス設定手法を選択する。この場合、制御部２０は、ユーザによって選択されたＩＰアドレス設定手法を示す手法情報（例えば、「ＳＴＡＴＩＣ」が選択された場合には、「ＳＴＡＴＩＣ」を示す情報）を、設定記憶領域３２に記憶させる。
【００３１】
（ＳＴＡＴＩＣ）
ユーザは、「ＳＴＡＴＩＣ」を選択する場合に、さらに、操作部１２を操作して、プリンタ１０に設定されるべきＩＰアドレス及びサブネットマスクをプリンタ１０に入力する。制御部２０は、ユーザによって入力されたＩＰアドレス及びサブネットマスクを、プリンタ１０の設定値として記憶する（即ち設定記憶領域３２に記憶させる）。
【００３２】
（ＤＨＣＰ）
「ＤＨＣＰ」が選択される場合には、制御部２０は、ＩＰアドレスの割り当てを要求するコマンドをＤＨＣＰサーバ９０に送信して、ＤＨＣＰサーバ９０からＩＰアドレス及びサブネットマスクを取得する。プリンタ１０は、ＤＨＣＰサーバ９０から取得されるＩＰアドレス及びサブネットマスクを、プリンタ１０の設定値として記憶する。
【００３３】
（ＢＯＯＴＰ）
「ＢＯＯＴＰ」が選択される場合には、制御部２０は、ＩＰアドレスの割り当てを要求するコマンドをＢＯＯＴＰサーバ（図示省略）に送信して、ＢＯＯＴＰサーバからＩＰアドレス及びサブネットマスクを取得する。「ＢＯＯＴＰ」は、コマンドの送信先がＢＯＯＴＰサーバである点を除くと、「ＤＨＣＰ」と同様である。
【００３４】
（ＲＡＲＰ）
ユーザは、「ＲＡＲＰ」を選択する場合に、ＲＡＲＰサーバ（図示省略）の操作部を操作して、プリンタ１０に設定されるべきＩＰアドレスと、プリンタ１０に設定されるべきサブネットマスクと、プリンタ１０のＭＡＣアドレスと、が対応付けられている情報を、ＲＡＲＰサーバに登録する。プリンタ１０は、ＲＡＲＰサーバに自己のＭＡＣアドレスを含むコマンドを送信する。ＲＡＲＰサーバは、コマンドに含まれるＭＡＣアドレスに対応づけられているＩＰアドレス及びサブネットマスクを、プリンタ１０に送信する。これにより、プリンタ１０は、ＲＡＲＰサーバからＩＰアドレスを取得する。プリンタ１０は、ＲＡＲＰサーバから取得されるＩＰアドレス及びサブネットマスクを、プリンタ１０の設定値として記憶する。
【００３５】
（ＡＰＩＰＡ）
「ＡＰＩＰＡ」が選択される場合には、制御部２０は、ＡＰＩＰＡに従ってＩＰアドレス及びサブネットマスクを生成して、プリンタ１０の設定値として記憶する。なお、ＡＰＩＰＡで生成され得るＩＰアドレスの範囲は、予め決められている。具体的には、「１６９．２５４．０．０」〜「１６９．２５４．２５５．２５５」の範囲である。
【００３６】
なお、「ＳＴＡＴＩＣ」及び「ＲＡＲＰ」では、ユーザが、ＩＰアドレス設定手法を変更したり、ＩＰアドレスを変更したりしない限り、プリンタ１０のＩＰアドレスは変化しない。従って、「ＳＴＡＴＩＣ」及び「ＲＡＲＰ」は、ユーザによって指定される静的なＩＰアドレスをプリンタ１０に設定するためのＩＰアドレス設定手法である、と言える。なお、「ＡＰＩＰＡ」も、静的なＩＰアドレスをプリンタ１０に設定するためのＩＰアドレス設定手法である、と言える。これに対し、「ＤＨＣＰ」及び「ＢＯＯＴＰ」では、プリンタ１０の電源がＯＮされる毎に、ＤＨＣＰサーバ９０からプリンタ１０に新たなＩＰアドレスが割り当てられる。従って、「ＤＨＣＰ」及び「ＢＯＯＴＰ」は、動的なＩＰアドレスをプリンタ１０に設定するためのＩＰアドレス設定手法である、と言える。
【００３７】
（メイン処理（図２））
続いて、プリンタ１０が実行する処理について説明する。上述したように、ＰＣ８０のユーザは、ＰＣ８０の操作部を操作して、印刷データを選択することができる。この場合、ＰＣ８０の制御部は、ＮｅｔＢＩＯＳ（Network Basic Input Output System）の一手法を用いて、プリンタ１０のＩＰアドレスを取得することを試行する（即ち名前解決を実行する）。なお、これは、ＤＮＳ（Domain Name System）サーバを用いた名前解決とは異なる手法である。具体的に言うと、ＰＣ８０の制御部は、プリンタポートで指定されているプリンタ１０のノード名を含む名前解決パケットを、ブロードキャストする。即ち、名前解決パケットでは、送信先ＩＰアドレスが不特定である。なお、名前解決パケットは、送信元ＩＰアドレスとして、ＰＣ８０の現在のＩＰアドレスを含む。
【００３８】
プリンタ１０の受信部５０（図１参照）は、ＰＣ８０からブロードキャストされる名前解決パケットを受信する。この場合、判断部５２（図１参照）は、名前解決パケットに含まれるノード名がプリンタ１０のノード名であるのか否かを判断する。判断部５２は、名前解決パケットに含まれるノード名がプリンタ１０のノード名である場合に、図２のＳ１０でＹＥＳと判断して、Ｓ１２に進む。一方において、判断部５２は、名前解決パケットに含まれるノード名がプリンタ１０のノード名でない場合に、図２のＳ１０でＮＯと判断する。
【００３９】
Ｓ１２では、判断部５２は、ＰＩＮＧパケットを送信する。このＰＩＮＧパケットは、送信先ＩＰアドレスとして、ＰＣ８０の現在のＩＰアドレスを含み、送信元ＩＰアドレスとして、プリンタ１０の現在のＩＰアドレス（即ち設定記憶領域３２に現在記憶されているＩＰアドレス）を含む。
【００４０】
次いで、Ｓ１４において、判断部５２は、Ｓ１２で送信されたＰＩＮＧパケットの応答パケットを受信することを監視する。なお、詳しくは後述するが、ＰＩＮＧパケットの応答パケットが受信される場合は、プリンタ１０がＰＣ８０とユニキャスト通信を実行可能であることを意味し、ＰＩＮＧパケットの応答パケットが受信されない場合は、プリンタ１０がＰＣ８０とユニキャスト通信を実行不可能であることを意味する。判断部５２は、ＰＩＮＧの応答パケットを受信することを監視することによって、プリンタ１０がＰＣ８０とユニキャスト通信を実行可能であるのか否かについて、適切な判断を実行することができる。
【００４１】
判断部５２は、応答パケットを受信する場合（Ｓ１４でＹＥＳの場合）に、Ｓ１６〜Ｓ２０をスキップして、Ｓ２２に進む。一方において、判断部５２は、Ｓ１２でＰＩＮＧパケットを送信してから所定時間が経過しても、応答パケットを受信しない場合に、Ｓ１４でＮＯと判断してＳ１６に進む。
【００４２】
なお、上述したように、Ｓ１４でＹＥＳの場合は、プリンタ１０がＰＣ８０とユニキャスト通信を実行可能であることを意味する。従って、フローチャート内の処理を図示省略しているが、Ｓ１４でＹＥＳの場合には、制御部２０は、設定記憶領域３２に現在記憶されている手法情報を、成功手法記憶領域３４に記憶させる。また、設定記憶領域３２に現在記憶されている手法情報が「ＳＴＡＴＩＣ」を示す場合には、制御部２０は、さらに、設定記憶領域３２に現在記憶されているＩＰアドレス及びサブネットマスクを、成功ＩＰ記憶領域３６に記憶させる。
【００４３】
Ｓ１６では、制御部２０は、ＩＰアドレス変更処理（図３参照）を実行する。次いで、Ｓ１８では、制御部２０は、Ｓ１６のＩＰアドレス変更処理でＩＰアドレスが変更されたのか否かを判断する。制御部２０は、ＩＰアドレスが変更されたと判断する場合（Ｓ１８でＹＥＳの場合）に、Ｓ２２に進む。一方において、制御部２０は、ＩＰアドレスが変更されなかったと判断する場合（Ｓ１８でＮＯの場合）、即ち、後述の図３のＳ６６で元の各設定値に戻された場合に、Ｓ２０に進む。
【００４４】
Ｓ２０では、制御部２０は、ＩＰアドレス変更処理が実行されたが、ＰＣ８０とのユニキャスト通信を実行可能なＩＰアドレスに変更することができなかったことを示すメッセージをユーザに通知する。制御部２０は、プリンタ１０の表示部１４にメッセージを表示させてもよいし、予め決められているデバイスにメッセージを送信してもよい（例えば電子メールを用いて送信してもよい）。Ｓ２０を終えると、図２の処理が終了する。
【００４５】
Ｓ２２では、送信部６４（図１参照）は、Ｓ１０で受信された名前解決パケットの応答パケットを送信する。この応答パケットは、送信先ＩＰアドレスとして、ＰＣ８０の現在のＩＰアドレスを含み、送信元ＩＰアドレスとして、プリンタ１０の現在のＩＰアドレス（例えば、Ｓ１６のＩＰアドレス変更処理が実行された場合には、変更後のＩＰアドレス）を含む。ＰＣ８０は、名前解決パケットの応答パケットを受信し、この結果、プリンタ１０のＩＰアドレスを取得することができる（即ち名前解決が成功する）。
【００４６】
次いで、Ｓ２４では、制御部２０は、Ｓ１６のＩＰアドレス変更処理でＩＰアドレスが変更されたのか否かを判断する。制御部２０は、ＩＰアドレスが変更されたと判断する場合（Ｓ２４でＹＥＳの場合）に、Ｓ２６に進む。一方において、制御部２０は、ＩＰアドレスが変更されなかったと判断する場合（Ｓ２４でＮＯの場合）に、Ｓ２６をスキップして、図２の処理を終了する。
【００４７】
Ｓ２６では、制御部２０は、ＩＰアドレス変更処理によってＩＰアドレスが変更されたことを示すメッセージをユーザに通知する。メッセージは、変更前のＩＰアドレスと、変更後のＩＰアドレスと、を含む。また、ＩＰアドレス設定手法も変更された場合には、メッセージは、さらに、変更前のＩＰアドレス設定手法と、変更後のＩＰアドレス設定手法と、を含んでいてもよい。また、サブネットマスクも変更された場合には、メッセージは、さらに、変更前のサブネットマスクと、変更後のサブネットマスクと、を含んでいてもよい。なお、メッセージの通知先は、上記のＳ２０と同様である。Ｓ２６を終えると、図２の処理が終了する。
【００４８】
（ＩＰアドレス変更処理）
続いて、図２のＳ１６で実行されるＩＰアドレス変更処理の内容について、詳しく説明する。
【００４９】
（ＤＨＣＰの利用）
図３に示されるように、Ｓ４０において、変更部５４（図１参照）は、設定記憶領域３２に現在記憶されている手法情報を参照して、プリンタ１０の現在のＩＰアドレス設定手法が「ＳＴＡＴＩＣ」であるのか否かを判断する。プリンタ１０の現在のＩＰアドレス設定手法が「ＳＴＡＴＩＣ」である場合（Ｓ４０でＹＥＳの場合）には、Ｓ４２に進み、プリンタ１０の現在のＩＰアドレス設定手法が「ＳＴＡＴＩＣ」でない場合（Ｓ４０でＮＯの場合）には、Ｓ４８に進む。
【００５０】
Ｓ４２では、変更部５４は、設定記憶領域３２内の手法情報を、「ＳＴＡＴＩＣ」を示す手法情報から、「ＤＨＣＰ」を示す手法情報に変更する。次いで、Ｓ４４において、取得部５６（図１参照）は、ＩＰアドレスの割り当てを要求するコマンドをＤＨＣＰサーバ９０に送信して、ＤＨＣＰサーバ９０からＩＰアドレス及びサブネットマスクを取得する。次いで、Ｓ４６において、変更部５４は、設定記憶領域３２内のＩＰアドレス及びサブネットマスクを、Ｓ４４で取得されたＩＰアドレス及びサブネットマスクに変更する。この構成によると、ＰＣ８０とのユニキャスト通信を実行可能な適切なＩＰアドレスを、プリンタ１０に新たに設定し得る。Ｓ４６を終えると、Ｓ６０に進む。
【００５１】
（ＡＰＩＰＡの利用）
Ｓ４８では、変更部５４は、ＰＣ８０の現在のＩＰアドレスが、ＡＰＩＰＡで生成され得るＩＰアドレスの範囲、即ち、「１６９．２５４．０．０」〜「１６９．２５４．２５５．２５５」に含まれるのか否かを判断する。ＰＣ８０の現在のＩＰアドレスが上記の範囲に含まれる場合（Ｓ４８でＹＥＳの場合）には、Ｓ５０に進み、ＰＣ８０の現在のＩＰアドレスが上記の範囲に含まれない場合（Ｓ４８でＮＯの場合）には、Ｓ５６に進む。
【００５２】
Ｓ５０では、変更部５４は、設定記憶領域３２内の手法情報を、「ＡＰＩＰＡ」を示す手法情報に変更する。なお、Ｓ５０が実行される時点において、設定記憶領域３２内の手法情報が、「ＡＰＩＰＡ」を示す手法情報である場合には、Ｓ５０がスキップされる。次いで、Ｓ５２において、第１の生成部５８（図１参照）は、ＡＰＩＰＡのアルゴリズムを用いて、ＩＰアドレスを生成する。即ち、第１の生成部５８は、「１６９．２５４．０．０」〜「１６９．２５４．２５５．２５５」の中から、１個のＩＰアドレスを選択することによって、ＩＰアドレスを生成する。なお、Ｓ５２では、さらに、第１の生成部５８は、ＡＰＩＰＡで予め決められているサブネットマスク「２５５．２５５．０．０」を生成する。次いで、Ｓ５４において、変更部５４は、設定記憶領域３２内のＩＰアドレス及びサブネットマスクを、Ｓ５２で生成されたＩＰアドレス及びサブネットマスクに変更する。この構成によると、ＰＣ８０とのユニキャスト通信を実行可能な適切なＩＰアドレスを、プリンタ１０に新たに設定し得る。Ｓ５４を終えると、Ｓ６０に進む。
【００５３】
（成功手法の利用）
Ｓ５６では、変更部５４は、成功手法を示す手法情報（以下では「成功手法情報」と呼ぶ）が成功手法記憶領域３４に記憶されているのか否かを判断する。成功手法情報が成功手法記憶領域３４に記憶されている場合（Ｓ５６でＹＥＳの場合）には、Ｓ５８に進み、成功手法情報が成功手法記憶領域３４に記憶されていない場合（Ｓ５６でＮＯの場合）には、図４のＳ９０に進む。
【００５４】
Ｓ５８では、制御部２０は、成功手法処理を実行する。図４に示されるように、成功手法処理では、Ｓ８０において、変更部５４は、成功手法情報が示す成功手法が「ＳＴＡＴＩＣ」であるのか否かを判断する。成功手法が「ＳＴＡＴＩＣ」である場合（Ｓ８０でＹＥＳの場合）には、Ｓ８２に進み、成功手法が「ＳＴＡＴＩＣ」でない場合（Ｓ８０でＮＯの場合）には、Ｓ８６に進む。
【００５５】
成功手法が「ＳＴＡＴＩＣ」である場合には、通常、成功ＩＰ記憶領域３６に成功ＩＰアドレス及びサブネットマスクが記憶されている。Ｓ８２では、確認部６２（図１参照）は、成功ＩＰ記憶領域３６に記憶されている成功ＩＰアドレスを含むＡＲＰパケットをブロードキャストする。
【００５６】
次いで、Ｓ８４において、確認部６２は、ＡＲＰパケットの応答パケットを受信することを監視する。例えば、ＡＲＰパケットに含まれる成功ＩＰアドレスが、ＬＡＮ４に接続されている他のデバイスに現在設定されている場合には、当該他のデバイスは、ＡＲＰパケットの応答パケットを送信する。この場合、確認部６２は、ＡＲＰパケットの応答パケットを受信して、Ｓ８４でＹＥＳと判断し、Ｓ９０に進む。一方において、ＡＲＰパケットに含まれる成功ＩＰアドレスが、ＬＡＮ４に接続されているいずれのデバイスにも現在設定されていない場合には、確認部６２は、ＡＲＰパケットの応答パケットを受信せず、Ｓ８４でＮＯと判断し、Ｓ８６に進む。Ｓ８２及びＳ８４でＡＲＰパケットが利用されるために、他のデバイスのＩＰアドレスと同じＩＰアドレスが、プリンタ１０に設定されるのを抑制することができる。
【００５７】
Ｓ８６では、変更部５４は、成功手法に対応するＩＰアドレスを取得可能であるのか否かを判断する。例えば、Ｓ８４でＮＯの場合に実行されるＳ８８では、成功手法が「ＳＴＡＴＩＣ」であり、成功ＩＰアドレス及びサブネットマスクが成功ＩＰ記憶領域３６に記憶されている。従って、この場合、変更部５４は、成功手法に対応するＩＰアドレス（即ち成功ＩＰアドレス）を取得可能であるために、Ｓ８６でＹＥＳと判断して、Ｓ８８に進む。
【００５８】
また、Ｓ８０でＮＯと判断される場合には、成功手法は、「ＤＣＨＰ」、「ＢＯＯＴＰ」、「ＲＡＲＰ」、及び、「ＡＰＩＰＡ」のいずれかである。例えば、成功手法が「ＤＨＣＰ」又は「ＢＯＯＴＰ」である場合には、Ｓ８６において、取得部５６は、ＩＰアドレスの割り当てを要求するコマンドをＤＨＣＰサーバ９０又はＢＯＯＴＰサーバに送信して、ＩＰアドレス及びサブネットマスクを取得することを試行する。また、例えば、成功手法が「ＲＡＲＰ」である場合には、変更部５４は、プリンタ１０のＭＡＣアドレスを含むコマンドをＲＡＲＰサーバに送信して、ＩＰアドレス及びサブネットマスクを取得することを試行する。変更部５４は、上記の試行が成功した場合（即ちコマンドの送信先のサーバからＩＰアドレス及びサブネットマスクが取得された場合）に、Ｓ８６でＹＥＳと判断して、Ｓ８８に進み、上記の試行が成功しなかった場合に、Ｓ８６でＮＯと判断して、Ｓ９０に進む。なお、例えば、成功手法が「ＡＰＩＰＡ」である場合には、Ｓ８６において、第１の生成部５８は、ＡＰＩＰＡのアルゴリズムを用いて、ＩＰアドレスを生成する。この場合、変更部５４は、成功手法に対応するＩＰアドレスを取得可能であるために、Ｓ８６でＹＥＳと判断して、Ｓ８８に進む。
【００５９】
Ｓ８８では、変更部５４は、設定記憶領域３２内の手法情報を、成功手法記憶領域３４に記憶されている成功手法情報に変更する。なお、Ｓ８８が実行される時点において、設定記憶領域３２内の手法情報と、成功手法情報と、が一致する場合には、Ｓ８８がスキップされる。Ｓ８８を終えると、Ｓ９８に進む。
【００６０】
Ｓ９０では、第２の生成部６０（図１参照）は、ＰＣ８０の現在のＩＰアドレスの一部の値を変更することによって、候補のＩＰアドレスを生成する。なお、第２の生成部６０は、受信ＩＰ記憶領域３８に記憶されている複数のＩＰアドレスのいずれにも一致しない候補のＩＰアドレスを生成する。Ｓ９０の具体例として、以下の（第１の例）及び（第２の例）を挙げることができる。
【００６１】
（Ｓ９０の具体例：第１の例）
例えば、プリンタ１０の現在のサブネットマスクが、先頭の１６ビットをマスクするものである場合（即ち「２５５．２５５．０．０」である場合）には、第２の生成部６０は、ＰＣ８０の現在のサブネットマスクが、先頭の２４ビットをマスクするものであると仮定する（即ち仮のサブネットマスク＝「２５５．２５５．２５５．０」）。次いで、第２の生成部６０は、ＰＣ８０の現在のＩＰアドレス（例えば「１９２．１６８．１．２」）と、仮のサブネットマスク（例えば「２５５．２５５．２５５．０」）と、を用いて、ネットワークアドレス部の値（例えば「１９２．１６８．１」）を決定する。次いで、第２の生成部６０は、ＰＣ８０の現在のＩＰアドレスに含まれる最後の８ビットの値（例えば「２」）と異なる値（例えば「３」）を、候補の値として決定する。次いで、第２の生成部６０は、ネットワークアドレス部の値（例えば「１９２．１６８．１」）と、候補の値（例えば「３」）と、を用いて（即ち論理和を算出して）、候補のＩＰアドレス（例えば「１９２．１６８．１．３」）を生成する。
【００６２】
（Ｓ９０の具体例：第２の例）
例えば、プリンタ１０の現在のサブネットマスクが、先頭の２４ビットをマスクするものである場合（即ち「２５５．２５５．２５５．０」である場合）には、第２の生成部６０は、ＰＣ８０の現在のサブネットマスクが、先頭の２８ビットをマスクするものであると仮定する（即ち仮のサブネットマスク＝「２５５．２５５．２５５．２４０」と仮定する）。後の処理は、上記の第１の例と同様である。
【００６３】
上記のＳ９０の処理は、以下のように表現することができる。即ち、第２の生成部６０は、ＰＣ８０の現在のＩＰアドレスのうちの第１の部分（第１の例では先頭の２４ビット、第２の例では先頭の２８ビット）をマスクして、ＰＣ８０の現在のＩＰアドレスのうちの第１の部分と異なる第２の部分の値を変更することによって、候補のＩＰアドレスを生成する。第１の部分の桁数は、プリンタ１０の現在のサブネットマスクのマスク部分の桁数（第１の例では先頭の１６ビット、第２の例では先頭の２４ビット）よりも大きい。
【００６４】
Ｓ９０を終えると、Ｓ９２において、確認部６２は、Ｓ９０で生成された候補のＩＰアドレスを含むＡＲＰパケットをブロードキャストする。次いで、Ｓ９４において、確認部６２は、ＡＲＰパケットの応答パケットを受信することを監視する。ＡＲＰパケットの応答パケットが受信される場合（Ｓ９４でＹＥＳの場合）は、他のデバイスに候補のＩＰアドレスが現在設定されていることを意味する。従って、第２の生成部６０は、Ｓ９０において、前回の候補のＩＰアドレスと異なる新たな候補のＩＰアドレスを再び生成する。一方において、ＡＲＰパケットの応答パケットが受信されない場合（Ｓ９４でＮＯの場合）は、他のデバイスに候補のＩＰアドレスが現在設定されていないことを意味する。この場合、Ｓ９６に進む。Ｓ９２及びＳ９４でＡＲＰパケットが利用されるために、他のデバイスのＩＰアドレスと同じＩＰアドレスが、プリンタ１０に設定されるのを抑制することができる。
【００６５】
Ｓ９６では、変更部５４は、設定記憶領域３２内の手法情報を、「ＳＴＡＴＩＣ」を示す手法情報に変更する。なお、Ｓ９６が実行される時点において、設定記憶領域３２内の手法情報が、「ＳＴＡＴＩＣ」を示す手法情報である場合には、Ｓ９６がスキップされる。Ｓ９６を終えると、Ｓ９８に進む。
【００６６】
Ｓ９８では、変更部５４は、設定記憶領域３２内のＩＰアドレス及びサブネットマスクを変更する。例えば、Ｓ８４でＮＯの場合に実行されるＳ９８では、変更部５４は、設定記憶領域３２内のＩＰアドレス及びサブネットマスクを、成功ＩＰ記憶領域３６に記憶されている成功ＩＰアドレス及びサブネットマクスに変更する。また、Ｓ８０でＮＯと判断され、かつ、Ｓ８６でＹＥＳと判断される場合に実行されるＳ９８では、変更部５４は、設定記憶領域３２内のＩＰアドレス及びサブネットマスクを、Ｓ８６で取得されたＩＰアドレス及びサブネットマクスに変更する。また、Ｓ９６を経て実行されるＳ９８では、変更部５４は、設定記憶領域３２内のＩＰアドレス及びサブネットマスクを、Ｓ９０で生成された候補のＩＰアドレス及び仮のサブネットマスクに変更する。この構成によると、ＰＣ８０とのユニキャスト通信を実行可能な適切なＩＰアドレスを、プリンタ１０に新たに設定し得る。Ｓ９８を終えると、成功手法処理が終了する。
【００６７】
（図３のＳ６０以降の処理）
成功手法処理が終了すると、図３のＳ６０に進む。Ｓ６０では、制御部２０は、ＰＩＮＧパケットを送信する。このＰＩＮＧパケットは、送信先ＩＰアドレスとして、ＰＣ８０の現在のＩＰアドレスを含み、送信元ＩＰアドレスとして、プリンタ１０の変更後のＩＰアドレス（即ち設定記憶領域３２に現在記憶されているＩＰアドレス）を含む。
【００６８】
次いで、Ｓ６２において、制御部２０は、Ｓ６０で送信されたＰＩＮＧパケットの応答パケットを受信すること監視する。制御部２０は、応答パケットを受信する場合（Ｓ６２でＹＥＳの場合）に、Ｓ６４及びＳ６６をスキップして、図３の処理を終了する。一方において、制御部２０は、Ｓ６０でＰＩＮＧパケットを送信してから所定時間が経過しても、応答パケットを受信しない場合に、Ｓ６２でＮＯと判断してＳ６４に進む。
【００６９】
Ｓ６４では、制御部２０は、設定記憶領域３２に記憶されているＩＰアドレスが変更された回数（以下では「リトライ回数」と呼ぶ）が、所定値に達したのか否かを判断する。、制御部２０は、リトライ回数が所定値に達していない場合（Ｓ６４でＮＯの場合）に、Ｓ４０に戻り、リトライ回数が所定値に達した場合（Ｓ６４でＹＥＳの場合）に、Ｓ６６に進む。Ｓ６６では、変更部５４は、設定記憶領域３２内の各設定値（ＩＰアドレス、サブネットマスク、ＩＰアドレス設定手法）を、図３のＩＰアドレス変更処理が実行される前の各設定値に戻す。Ｓ６６を終えると、図３の処理が終了する。
【００７０】
以上のように、本実施例によると、プリンタ１０は、ＰＣ８０からの指示、又は、操作部１２を介した指示を受けなくても、上記の種々の方法を用いて、プリンタ１０のＩＰアドレスを主体的に変更することができる。即ち、ユーザがプリンタ１０のＩＰアドレスを変更するための作業を行なわなくても、プリンタ１０のＩＰアドレスを変更可能である。
【００７１】
（具体的なケース（図５））
図５に示されるように、ＰＣ８０では、ＩＰアドレス設定手法が「ＤＨＣＰ」であり、ＩＰアドレスが「１９２．１６８．１．２」であり、サブネットマスクが「２５５．２５５．２５５．０」である。従って、ＰＣ８０のＩＰアドレスのネットワークアドレス部の値は、「１９２．１６８．１」である。
【００７２】
図５では、ユーザが、プリンタ１０のＩＰアドレス設定手法を、「ＤＨＣＰ」から「ＳＴＡＴＩＣ」に変更する場合を想定している。上述したように、ＰＣ８０のＩＰアドレス設定手法は、「ＤＨＣＰ」である。従って、プリンタ１０のＩＰアドレス設定手法が「ＤＨＣＰ」から「ＳＴＡＴＩＣ」に変更される前には、プリンタ１０及びＰＣ８０のそれぞれに、ＤＨＣＰサーバ９０からＩＰアドレス及びサブネットマスクが割り当てられる。この場合、プリンタ１０及びＰＣ８０は、通常、適切にユニキャスト通信を実行し得る。ただし、プリンタ１０のＩＰアドレス設定手法が「ＤＨＣＰ」から「ＳＴＡＴＩＣ」に変更される場合には、プリンタ１０のＩＰアドレス及びサブネットマスクが、ユーザによって指定される。
【００７３】
図５は、ユーザによって指定されたプリンタ１０のＩＰアドレス及びサブネットマスクを示す。即ち、プリンタ１０では、ＩＰアドレス設定手法が「ＳＴＡＴＩＣ」であり、ＩＰアドレスが「１９２．１６８．２．３」であり、サブネットマスクが「２５５．２５５．０．０」である。従って、プリンタ１０のＩＰアドレスのネットワークアドレス部の値は、「１９２．１６８」である。上述したように、ＰＣ８０のＩＰアドレスのネットワークアドレス部の値は、「１９２．１６８．１」である。従って、プリンタ１０とＰＣ８０との間でネットワークアドレスが異なる。
【００７４】
上述したように、ＰＣ８０は、プリンタ１０のノード名「ＡＡＡ」を含む名前解決パケットＮＰをブロードキャストする。なお、名前解決パケットＮＰは、送信元ＩＰアドレスとして、ＰＣ８０の現在のＩＰアドレス「１９２．１６８．１．２」を含む。
【００７５】
プリンタ１０の受信部５０は、名前解決パケットＮＰを受信する（図２のＳ１０参照）。プリンタ１０の制御部２０は、通常、パケットが受信される毎に、当該パケットが妥当であるのか否かを判断する。制御部２０は、妥当であると判断されるパケットについて、当該パケットに従った処理を実行し、妥当でないと判断されるパケットについて、当該パケットに従った処理を実行せずに、当該パケットを破棄する。パケットの妥当性は、当該パケットがプリンタ１０と同じネットワークから送信されたものであるのか否かに基づいて、判断される。具体的に言うと、制御部２０は、名前解決パケットＮＰに含まれる送信元ＩＰアドレス「１９２．１６８．１．２」が、プリンタ１０のネットワークアドレス「１９２．１６８」を含むのか否かを判断する。この例では、制御部２０は、名前解決パケットＮＰが妥当であると判断する。即ち、プリンタ１０とＰＣ８０との間でネットワークアドレスが異なるにも関わらず、制御部２０は、名前解決パケットＮＰが妥当であると判断して、名前解決パケットＮＰを破棄しない。
【００７６】
次いで、プリンタ１０の判断部５２は、ＰＩＮＧパケットＰ１を送信する（図２のＳ１２参照）。なお、ＰＩＮＧパケットＰ１は、送信先ＩＰアドレスとして、ＰＣ８０の現在のＩＰアドレス「１９２．１６８．１．２」を含み、送信元ＩＰアドレスとして、プリンタ１０の現在のＩＰアドレス「１９２．１６８．２．３」を含む。
【００７７】
ＰＣ８０は、ＰＩＮＧパケットＰ１が妥当であるのか否かを判断する。即ち、ＰＣ８０は、ＰＩＮＧパケットＰ１に含まれる送信元ＩＰアドレス「１９２．１６８．２．３」が、ＰＣ８０のネットワークアドレス「１９２．１６８．１」を含むのか否かを判断する。この例では、ＰＣ８０は、ＰＩＮＧパケットＰ１が妥当でないと判断して、ＰＩＮＧパケットＰ１を破棄する。即ち、ＰＣ８０は、ＰＩＮＧパケットＰ１の応答パケットを送信しない。従って、このような状況では、プリンタ１０は、プリンタ１０のＩＰアドレス「１９２．１６８．２．３」と、ＰＣ８０のＩＰアドレス「１９２．１６８．１．２」と、を用いて、ＰＣ８０とのユニキャスト通信を実行不可能である。
【００７８】
図５の例では、ＰＣ８０からＰＩＮＧパケットＰ１の応答パケットが送信されないために、プリンタ１０の判断部５２は、ＰＣ８０とのユニキャスト通信を実行不可能であると判断して、図２のＳ１４でＮＯと判断する。即ち、図２のＳ１４の判断処理は、ＰＣ８０とのユニキャスト通信を実行可能であるのか否かを判断することに等しい。より具体的に言うと、図２のＳ１４の判断処理は、プリンタ１０のＩＰアドレスのネットワークアドレス部の値と、ＰＣ８０のＩＰアドレスのネットワークアドレス部の値と、が一致するのか否かを判断することに等しい。
【００７９】
ＰＣ８０とのユニキャスト通信を実行不可能であると判断される場合（図２のＳ１４でＮＯの場合）には、制御部２０は、ＩＰアドレス変更処理を実行する（図２のＳ１６参照）。図５の例では、プリンタ１０のＩＰアドレス設定手法が「ＳＴＡＴＩＣ」である。従って、図３のＳ４０でＹＥＳと判断されるために、Ｓ４２において、変更部５４は、プリンタ１０のＩＰアドレス設定手法を、「ＳＴＡＴＩＣ」から「ＤＨＣＰ」に変更する。さらに、Ｓ４４において、取得部５６は、ＤＨＣＰサーバ９０から、ＩＰアドレス「１９２．１６８．１．３」及びサブネットマスク「２５５．２５５．２５５．０」を取得する。ＰＣ８０が利用しているＤＨＣＰサーバ９０から、ＩＰアドレス及ぶサブネットマスクが取得されるために、当該ＩＰアドレスのネットワークアドレス部の値「１９２．１６８．１」は、ＰＣ８０のＩＰアドレスのネットワークアドレス部の値に一致する。次いで、Ｓ４６において、変更部５４は、設定記憶領域３２内のＩＰアドレス及びサブネットマスクを、「１９２．１６８．２．３」及び「２５５．２５５．０．０」から、「１９２．１６８．１．３」及び「２５５．２５５．２５５．０」に変更する。
【００８０】
次いで、Ｓ６０において、制御部２０は、ＰＩＮＧパケットＰ２（図５参照）を送信する。なお、ＰＩＮＧパケットＰ２は、送信先ＩＰアドレスとして、ＰＣ８０の現在のＩＰアドレス「１９２．１６８．１．２」を含み、送信元ＩＰアドレスとして、プリンタ１０の変更後のＩＰアドレス「１９２．１６８．１．３」を含む。
【００８１】
ＰＩＮＧパケットＰ２に含まれる送信元ＩＰアドレス「１９２．１６８．１．３」が、ＰＣ８０のネットワークアドレス「１９２．１６８．１」を含むために、ＰＣ８０は、ＰＩＮＧパケットＰ２が妥当であると判断する。このために、ＰＣ８０は、ＰＩＮＧパケットＰ２の応答パケットＲ１を送信する。従って、プリンタ１０の制御部２０は、Ｓ６２でＹＥＳと判断し、図３のＩＰアドレス変更処理（即ち図２のＳ１６）を終了する。このように、ＩＰアドレス変更処理が実行されることにより、プリンタ１０とＰＣ８０とがユニキャスト通信を実行可能な状態が構築される。
【００８２】
次いで、図２のＳ２２において、送信部６４は、名前解決パケットＮＰの応答パケットＲ２を送信する。この応答パケットＲ２は、送信先ＩＰアドレスとして、ＰＣ８０の現在のＩＰアドレス「１９２．１６８．１．２」を含み、送信元ＩＰアドレスとして、プリンタ１０の変更後のＩＰアドレス「１９２．１６８．１．３」を含む。
【００８３】
ＰＣ８０は、応答パケットＲ２を受信することによって、プリンタ１０のＩＰアドレス「１９２．１６８．１．３」を取得することができる。この場合、ＰＣ８０は、プリンタ１０のＩＰアドレス「１９２．１６８．１．３」を送信先ＩＰアドレスとして、印刷データＰＤを送信する。これにより、プリンタ１０の制御部２０は、印刷データＰＤに従って、印刷実行部１６に印刷を実行させる印刷処理を実行する。
【００８４】
（本実施例の効果）
本実施例によると、プリンタ１０は、ＰＣ８０からブロードキャストされる名前解決パケットＮＰを受信する場合に、ＰＣ８０とのユニキャスト通信を実行可能であるのか否かを判断する（図２のＳ１４参照）。プリンタ１０は、ＰＣ８０とのユニキャスト通信を実行不可能であると判断する場合（図２のＳ１４でＮＯの場合）に、プリンタ１０のＩＰアドレスを変更する（図２のＳ１６参照）。プリンタ１０のＩＰアドレスが変更されるために、プリンタ１０とＰＣ８０とがユニキャスト通信を実行可能な状態になり得る。しかも、プリンタ１０は、上記の判断を実行して、プリンタ１０のＩＰアドレスを変更する必要があるのか否かを主体的に決定する。そして、プリンタ１０は、プリンタ１０のＩＰアドレスを変更する必要があると判断する場合（即ち、ＰＣ８０とのユニキャスト通信を実行不可能であると判断する場合）に、ＰＣ８０からの指示を受けなくても、プリンタ１０のＩＰアドレスを主体的に変更する。即ち、プリンタ１０は、ＰＣ８０からの印刷データに従って印刷処理を実行可能な状態に自動的に復帰する。ユーザは、ＰＣ８０において、プリンタ１０のＩＰアドレスを変更するための作業を行なう必要がない。従って、ユーザの作業負担を軽減することができる。
【００８５】
（対応関係）
プリンタ１０、ＰＣ８０が、それぞれ、「通信装置」、「外部装置」の一例である。名前解決パケットＮＰ、ＰＩＮＧパケットＰ１、応答パケットＲ２が、それぞれ、「特定の信号」、「第１の信号」、「第２の信号」の一例である。また、図５に示される各ＩＰアドレス、即ち、「１９２．１６８．１．２」、「１９２．１６８．２．３」、「１９２．１６８．１．３」が、それぞれ、「特定のＩＰアドレス」、「第１のＩＰアドレス」、「第２のＩＰアドレス」の一例である。なお、図３のＳ５２で生成されるＩＰアドレス、図４のＳ８６で取得されるＩＰアドレス、及び、図４のＳ９０で生成されるＩＰアドレスも、「第２のＩＰアドレス」の一例である。さらに、図４のＳ９４でＹＥＳの場合にＳ９０で再び生成されるＩＰアドレスが、「第１及び第２のＩＰアドレスと異なるＩＰアドレス」の一例である。また、成功手法記憶領域３４、成功ＩＰ記憶領域３６が、それぞれ、「手法メモリ」、「アドレスメモリ」の一例である。ＤＨＣＰサーバ９０及びＢＯＯＴＰサーバが、「ＩＰアドレス割当サーバ」の一例である。また、ＡＰＩＰＡが、「所定のアルゴリズム」の一例である。
【００８６】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００８７】
（１）上記の実施例では、プリンタ１０が「通信装置」の一例であるが、「通信装置」は、例えば、ＰＣ、サーバ、スキャナ、ＦＡＸ、電話機、多機能機、携帯電話、ＰＤＡ等であってもよい。
【００８８】
（２）上記の実施例では、図５に示されるように、ＰＣ８０がＰＩＮＧパケットＰ１の応答パケットを送信しない状況として、プリンタ１０とＰＣ８０との間でネットワークアドレスが異なる場合を想定している。ただし、例えば、ＰＣ８０は、ＩＰアドレスのフィルタリング機能を備えていてもよい。即ち、ＰＣ８０は、フィルタリングの対象のＩＰアドレス（例えばユーザによって予め指定されたＩＰアドレス）を送信元ＩＰアドレスとして含むパケットを破棄してもよい。このような状況では、例えば、プリンタ１０のＩＰアドレスがフィルタリングの対象のＩＰアドレスである場合には、プリンタ１０とＰＣ８０との間でネットワークアドレスが同じであっても、ＰＣ８０は、ＰＩＮＧパケットＰ１の応答パケットを送信しない。即ち、一般的に言うと、「ユニキャスト通信を外部装置と実行不可能である」は、通信装置と外部装置との間でネットワークアドレスが異なる場合のみならず、外部装置が通信装置のＩＰアドレスをフィルタリングしている場合を含む。
【００８９】
（３）上記の実施例では、判断部５２は、ＰＩＮＧパケットＰ１の応答パケットを受信することを監視することによって、ＰＣ８０とのユニキャスト通信を実行可能であるのか否かを判断する。即ち、一般的に言うと、判断部は、第１の信号の応答信号を受信することを監視することによって、通信装置がユニキャスト通信を外部装置と実行可能であるのか否かを判断する。ただし、判断部は、外部装置のＩＰアドレス及びサブネットマスクを取得可能である場合には、外部装置のＩＰアドレス及びサブネットマスクを用いて、外部装置のＩＰアドレスのネットワークアドレス部の値を特定してもよい。これに代えて、判断部は、通信装置のＩＰアドレス及びサブネットマスクを用いて、外部装置のＩＰアドレスのネットワークアドレス部の値を推定してもよい。そして、判断部は、特定済み又は推定済みのネットワークアドレス部の値を用いて、通信装置と外部装置との間でＩＰアドレスのネットワークアドレス部の値が同じであるのか否かを判断することによって、通信装置がユニキャスト通信を外部装置と実行可能であるのか否かを判断してもよい。即ち、一般的に言うと、「ユニキャスト通信を外部装置と実行可能であるのか否かを判断する」は、第１の信号（例えばＰＩＮＧパケットＰ１）を送信して判断する場合も、第１の信号（例えばＰＩＮＧパケットＰ１）を送信せずに判断する場合も含む。
【００９０】
（４）上記の実施例では、プリンタ１０のＩＰアドレスが変更される場合に、プリンタ１０が変更後のＩＰアドレスを利用し続けることを想定している。しかしながら、プリンタ１０は、変更後のＩＰアドレスを一時的に利用してもよい。例えば、プリンタ１０は、ＰＣ８０から印刷データを受信して印刷処理を実行すると、プリンタ１０のＩＰアドレスを、変更前のＩＰアドレスに戻してもよい。一般的に言うと、通信装置は、第２のＩＰアドレスを永続的に利用してもよいし、第２のＩＰアドレスを一時的に利用してもよい。
【００９１】
（５）上記の実施例では、ＣＰＵ２２がプログラムに従った処理を実行することによって、各部５０〜６４の機能が実現される。ただし、各部５０〜６４のうちの少なくとも１つは、論理回路等のハードウェアによって実現されてもよい。
【００９２】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００９３】
２：通信システム、１０：プリンタ、８０：ＰＣ、９０：ＤＨＣＰサーバ、ＮＰ：名前解決パケット、Ｐ１，Ｐ２：ＰＩＮＧパケット、Ｒ１，Ｒ２：応答パケット、ＰＤ：印刷データ
【図１】
0005527233.tif 000002
【図２】
0005527233.tif 000003
【図３】
0005527233.tif 000004
【図４】
0005527233.tif 000005
【図５】
0005527233.tif 000006