(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
従来、ユーザ端末のIPアドレスに基づいて、当該ユーザ端末が使用されている地域(つまり、IPアドレスが使用されている地域)を特定する技術が知られている(例えば、特許文献1参照)。特許文献1に記載の地域情報決定システムは、IPアドレスと特定地域との関連性を示す基礎情報を収集し、当該収集した基礎情報を用いてIPアドレスの地域情報を設定する。
【0003】
また、特許文献1に記載の地域情報決定システムは、地域情報を設定することが不可能なIPアドレスの地域情報を推定する。地域情報を設定することが不可能なIPアドレスとは、特定地域との関連性を示す基礎情報がないか不足する場合、または、同一のIPアドレスに対して互いに異なる地域との関連性を意味する基礎情報が複数存在する場合に、地域情報を直接設定することが難しいIPアドレスを意味する。
【0004】
すなわち、特許文献1に記載の地域情報推定部は、複数のIPアドレスを含むIPアドレスグループ(IP割当基準であるIPサブネット)を用いてIPアドレスの地域情報を推定する。具体的には、IPアドレスグループ別に代表地域を設定し、あるIPアドレスの地域情報を基礎情報から一意に設定できない場合、そのIPアドレスが属するIPアドレスグループに設定された代表地域を、当該あるIPアドレスの地域情報として推定する。
【0005】
ところで、送信元のユーザ端末の使用地域を特定するために、当該ユーザ端末のIPアドレスを利用するためには、まず送信元のユーザ端末のIPアドレスを検出する必要がある。これに関連して、従来、経路探索コマンドを実行することによってルータの経由情報を取得し、ルータのIPアドレスを特定することによって通信経路を検出する技術が知られている(例えば、特許文献2参照)。
【0006】
すなわち、特許文献2に記載の通信経路検出装置では、OSI(Open Systems Interconnection)参照モデルのレイヤ3(ネットワーク層)において、機器Aから機器Bに至る通信経路の探索を行う経路探索コマンドを実行することにより、どのルータを経由したかの経由情報を取得する。そして、その経由情報とメモリに保持している仮想ルータ冗長プロトコル(VRRP:Virtual Router Redundancy Protocol)情報とを照合することで、ルータのIPアドレスを特定することにより、レイヤ3ネットワークの通信経路を検出する。
【0007】
この特許文献2に記載の技術を用いて検出したルータの経由情報を辿っていくことによって、送信元のユーザ端末の直下にあるルータのIPアドレスを検出し、当該検出したIPアドレスを用いて特許文献1に記載の技術を適用すれば、送信元のユーザ端末が使用されている地域(正確には、ユーザ端末の直下にあるルータが設置されている地域であるが、ユーザ端末とその直下のルータとは近接して設置されており、同一地域にあることは間違いないので、本明細書ではこれを「ユーザ端末の地域」として説明する)を特定することが可能となる。
【0008】
【特許文献1】特開2016−178644号公報
【特許文献2】特開2010−114657号公報
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態を図面に基づいて説明する。
図1は、本実施形態によるIPアドレスの使用地域特定システム100(以下、単に使用地域特定システムという)の機能構成例を示すブロック図である。
図1に示すように、本実施形態の使用地域特定システム100は、その機能構成として、通信経路検出部11、地域特定部12および経路記録部13を備えている。
【0015】
上記各機能ブロック11〜13は、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック11〜13は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【0016】
また、本実施形態の使用地域特定システム100は、記憶媒体として、地域データベース記憶部14および経路データベース記憶部15を備えている。なお、使用地域特定システム100は、通信経路検出部11、地域特定部12および経路記録部13の各機能をサーバ装置またはパーソナルコンピュータが備え、地域データベース記憶部14および経路データベース記憶部15を外部のデータサーバが備える構成であってもよい。
【0017】
地域データベース記憶部14は、IPアドレスと、そのIPアドレスが使用されている地域とを関連付けて成るIPアドレス使用地域情報を地域データベースとしてあらかじめ記憶する。IPアドレスが使用されている地域は、公知の方法を用いた事前の調査によりあらかじめ特定される。
【0018】
IPアドレスに関連付けて記憶する地域は、例えば都道府県単位の広さで特定される地域である。この場合、IPアドレス使用地域情報は、各IPアドレスがそれぞれ都道府県内のどこかで使用されていることを示す情報となる。例えば、あるIPアドレスに対して「東京」が関連付けられていた場合、そのIPアドレスは東京都の中のどこかで使用されているものであることを意味する。
【0019】
なお、IPアドレスに関連付けて記憶する地域の広さは、都道府県単位の広さに限定されない。例えば、市区町村の単位で特定される地域をIPアドレスに関連付けて使用地域特定システム100に記憶させるようにしてもよい。
【0020】
通信経路検出部11は、経路探索コマンドを実行することにより、ルータの経由情報を含む通信経路を検出する。この通信経路の検出は、公知技術を適用して行うことが可能である。例えば、Unix(登録商標)のtracerouteコマンド(Windows(登録商標)ではtracertコマンド)を実行することにより、ある通信がインターネット上で行われたときにおける送信元のホストと送信先のホストとの間の通信経路を得ることができる。ここでいう通信経路は、ホスト間を接続する複数のルータの経由情報のことである。
【0021】
例えば、通信経路検出部11は、送信先のホストを指定して経路探索コマンドを実行することにより、指定した送信先のホストから送信元のホストまでの間の通信経路を送信方向とは逆向きに探索し、通信経路上に存在するルータの経由情報を取得する。ルータの経由情報には、各ルータのIPアドレスが含まれている。これにより、送信元のユーザ端末(その直下のルータ)が使用されている地域を特定するために用いるIPアドレスを検出することができる。
【0022】
地域特定部12は、地域データベース記憶部14に記憶されている地域データベースを参照して、通信経路検出部11により検出された通信経路の末端に位置するルータのIPアドレスから地域を特定する。送信先から送信元に向かって通信経路を逆向きに探索した場合、通信経路の末端に位置するルータとは、原則的には、送信元のユーザ端末の直下に設置されているルータである。したがって、通信経路の末端に位置するルータのIPアドレスから地域を特定することは、送信元のユーザ端末が使用されている地域を特定することに相当する。
【0023】
図2は、通信経路検出部11により検出される通信経路および地域特定部12により特定される地域の一例を示す図である。
図2の例では、静岡県にある送信元のホスト(例えば、ユーザ端末)から、神奈川県にある送信先のホスト(例えば、サーバ装置)まで行われた通信に関し、通信経路検出部11が送信先のサーバ装置から送信元のユーザ端末に向かって逆向きに通信経路を探索した結果を示している。この通信経路の経由情報には、送信先から送信元に向かって順に神奈川県、埼玉県、東京都、愛知県、静岡県にある各ルータのIPアドレスが含まれている。
【0024】
図2に示す通信経路の末端に位置するルータは、静岡県に設置されているルータである。地域特定部12は、地域データベース記憶部14に記憶されている地域データベースを参照して、通信経路検出部11により検出された通信経路の末端に位置するルータのIPアドレスから、そのIPアドレスに関連付けられた「静岡県」という地域を特定する。これにより、通信経路の末端に位置するルータを直下で使用している送信元のユーザ端末が静岡県に存在することを認識することが可能となる。
【0025】
ここで、通信経路の末端に位置するルータが「原則的に」送信元のユーザ端末の直下に設置されているルータであるとしたのは、例外があるからである。例外とは、
図3に示すように、経路探索コマンドを実行しても、送信元のユーザ端末(その直下のルータ)まで通信経路を辿ることができない場合である。このような場合、地域特定部12は、辿ることができた通信経路の範囲で、送信元のユーザ端末が使用されている地域を特定する。
【0026】
すなわち、地域特定部12は、通信経路検出部11により検出された通信経路に含まれるルータの数に基づいて、IPアドレスから特定する地域の広さを変える。ここで、地域特定部12は、通信経路検出部11により検出された通信経路に含まれるルータの数が少ないほど、IPアドレスから特定する地域の広さを大きくする。
【0027】
図3は、通信経路検出部11により検出された通信経路に含まれるルータの数が4個であり、4個という数に応じた広さで地域が特定された状態を示している(特定された地域をハッチングで示している)。
図2と比較して明らかな通り、通信経路検出部11により検出された通信経路に含まれるルータの数が5個の場合に特定される地域(静岡県)の広さよりも、検出された通信経路に含まれるルータの数が4個の場合に特定される地域の方が広くなっている。
【0028】
日本国内においてインターネット上で通信を行う場合、送信元のホストから送信先のホストまでの間に経由するルータの数は決まっている。したがって、地域特定部12は、通信経路検出部11により検出された通信経路に経由情報として含まれるルータの数が所定数(本実施形態では、
図2に示す5個として説明する)の場合は、送信元のユーザ端末まで通信経路を辿ることができたと認識する一方、通信経路に経由情報として含まれるルータの数が所定数より少ない場合は、送信元のユーザ端末まで通信経路を辿ることができなかったと認識することができる。
【0029】
そして、地域特定部12は、送信元のユーザ端末まで通信経路を辿ることができなかったと認識した場合、その通信経路(送信元のユーザ端末まで到達しない途中までの通信経路)の末端に位置するルータのIPアドレスをもとに、通信経路に含まれるルータの数に応じた広さの地域を特定する。このとき、地域特定部12は、通信経路に含まれるルータの数が少ないほど広くなるような地域を特定する。
【0030】
具体的には、地域特定部12は、地域データベースを参照して、途中までの通信経路の末端に位置するルータのIPアドレスに関連付けられた地域(都道府県単位の地域)を特定する。そして、地域特定部12は、その特定した都道府県を含み、都道府県の単位よりも広い範囲の地域を特定する。都道府県の単位よりも広い範囲とは、例えば、関東地方や東北地方といった地方単位の広さ、西日本や東日本といった地方群単位の広さ、日本全国という国単位の広さである。
【0031】
図4は、通信経路検出部11により検出された通信経路に含まれるルータの数に応じて特定される地域の広さを例示する図である。地域特定部12は、通信経路検出部11により検出された通信経路に含まれるルータの数が所定数(5個)の場合は、地域データベースに記憶されている都道府県単位の地域41(例えば、静岡県)を特定する。一方、通信経路に含まれるルータの数が所定数より少ない場合は、地域データベースに記憶されている都道府県単位の地域よりも広い地域42〜44を特定し、その際、通信経路に含まれるルータの数が少ないほど、特定する地域の広さを大きくする。
【0032】
図4は、通信経路に含まれるルータの数が4個の場合は地方単位の地域42(例えば、東海地方)を特定し、通信経路に含まれるルータの数が3個の場合は地方群単位の地域43(例えば、西日本)を特定し、通信経路に含まれるルータの数が2個以下の場合は国単位の地域44(例えば、日本全体)を特定する例を示している。
図3の例では、通信経路検出部11により検出された通信経路に含まれるルータの数が4個であり、その通信経路の末端に位置するルータのIPアドレスをもとに地域データベースを参照することによって「愛知県」が特定されるので、愛知県を含む地方単位の地域として「東海地方」が特定された状態を示している。
【0033】
インターネット上で複数のルータを経由しながら通信を行う場合、比較的近い距離にあるルータを順次経由しながら通信が行われるという性質がある。したがって、経由したルータの数が増えていけば、送信元のユーザ端末に至る通信経路を最後まで辿ることができなくても、途中までの通信経路の末端のルータの位置からある程度の範囲内の場所に送信元のユーザ端末が存在することを推定できる。一方、検出できた通信経路に含まれるルータの数が少ない場合は、途中までの通信経路の末端のルータからどの方向のルータを経由するかが定まらないので、送信元のユーザ端末が存在する場所として推定可能な範囲が広くなる。本実施形態では、このような性質を利用して、通信経路検出部11により検出された通信経路に含まれるルータの数に応じた広さの地域を特定するようにしている。
【0034】
このように、通信経路検出部11により検出された通信経路に含まれるルータの数が所定数より少ない場合は、特定される地域の広さは都道府県単位よりも広くなる。ただし、可能な限り狭い範囲(都道府県単位に近い範囲)で地域を特定できるようにするのが好ましい。本実施形態では、経路記録部13および経路データベース記憶部15を用いることにより、このことを実現できるようにしている。
【0035】
経路記録部13は、通信経路検出部11により検出された通信経路の情報を、通信経路の検出が行われる毎に、経路データベース記憶部15の経路データベースに記憶させる。経路データベースに記憶させる通信経路の情報は、通信経路に含まれる各ルータおよび当該各ルータで使用されているIPアドレスに関する情報である。この経路データベースに記憶される通信経路の情報には、送信元のユーザ端末まで辿ることができた場合の通信経路(経由したルータの数が5個の通信経路)の他、送信元のユーザ端末まで辿ることができなかった場合の通信経路(経由したルータの数が4個以下の通信経路)も含まれる。
【0036】
地域特定部12は、通信経路検出部11により検出された通信経路(以下、検出経路という)に含まれるルータの数が所定数より少ない場合、ルータの数に応じた広さの地域のうち、所定の地域を除いた広さの地域を特定する。除外する地域は、経路データベースに記憶されている通信経路(以下、履歴経路という)であって検出経路と一部が共通する通信経路において、検出経路の末端よりも先にある経路上に位置するルータのIPアドレスに対応する地域である。検出経路と一部が共通する履歴経路とは、履歴経路が検出経路のルータの全てを含み、更にそれ以外のルータを含むことを意味する。
【0037】
図5は、以上の地域特定部12の動作を説明するための図であり、経路データベースに記憶されている通信経路(履歴経路)の一例を示す図である。
図5は、神奈川県、埼玉県、東京都、愛知県、岐阜県の各ルータを経由する通信経路と、神奈川県、埼玉県、東京都、愛知県、静岡県の各ルータを経由する通信経路とが経路データベースに履歴経路として記憶されている例を示している。
【0038】
この
図5のような履歴経路が経路データベースに記憶されているときに、通信経路検出部11により新たに検出された通信経路が
図3のような通信経路であったとする。すなわち、通信経路検出部11により検出された通信経路(検出経路)に含まれるルータの数が所定数より少ない4個で、当該4個のルータがそれぞれ神奈川県、埼玉県、東京都、愛知県のものであったとする。
【0039】
この場合、
図5に示す2つの履歴経路は、
図3に示す検出経路と一部(神奈川県、埼玉県、東京都、愛知県の部分)が共通する通信経路である。そして、履歴経路のうち検出経路の末端よりも先にある経路上に位置するルータは、岐阜県のルータおよび静岡県のルータである。よって、地域特定部12は、4個というルータの数に応じて特定される東海地方という地域のうち、この岐阜県のルータおよび静岡県のルータの各IPアドレスに対応する地域(岐阜県および静岡県)を除いた広さの地域を特定する。すなわち、愛知県および三重県の2つの県を含む範囲の地域を特定する。
【0040】
履歴経路のうち、検出経路の末端より先にある経路上に位置するルータのIPアドレスに対応する地域(岐阜県および静岡県)を除くのは、検出経路の末端よりも先にあるルータが、履歴経路にはない地域(愛知県および三重県)のルータである可能性の方が高いと言えるからである。すなわち、履歴経路があるということは、実際に経路が検出された実績があるということである。もし、今回の検出経路も履歴経路と同じ経路であれば、今回も履歴経路と同じように通信経路が検出されている可能性が高いはずである。しかし、実際には履歴経路と同じ通信経路は検出されていない。よって、今回の検出経路は、履歴経路とは異なる可能性が高いと考えられる。そのため、地域特定部12は、履歴経路のうち、検出経路の末端よりも先にある経路上に位置するルータのIPアドレスに対応する地域を除いた範囲の地域を特定する。このようにすることにより、検出された通信経路に含まれるルータの数に応じて特定される広さの地域の中で、できるだけ狭い範囲に絞り込んだ地域を特定することが可能となる。
【0041】
ここでは、通信経路検出部11により検出された通信経路に含まれるルータの数が4個の場合について例示したが、3個以下の場合も同様である。例えば、検出された通信経路に含まれるルータの数が3個の場合、3個というルータの数に応じて特定される地域の範囲は、西日本や東日本、北日本といった地方群単位である。地域特定部12は、例えば3個のうち末端のルータのIPアドレスから特定される地域が東日本であった場合、この東日本という地域に含まれる各地方のうち、検出経路と共通する経路を一部に有する1以上の履歴経路によって示される4個目のルータのIPアドレスに対応する地域を含む地方を除いた広さの地域を特定する。なお、東日本という地域に含まれる各都道府県のうち、検出経路と共通する経路を有する1以上の履歴経路によって示される4個目以降のルータの各IPアドレスに対応する都道府県を除いた広さの地域を特定するようにしてもよい。
【0042】
なお、履歴経路のうち検出経路の末端よりも先にある経路上に位置するルータのIPアドレスに対応する地域を除くと、特定すべき地域がなくなってしまうような場合には、履歴経路を用いた地域の除外処理は行わず、検出経路に含まれるルータの数に応じた広さの地域を通常通り特定する。
【0043】
以上詳しく説明したように、本実施形態では、通信経路検出部11が経路探索コマンドを実行することにより、ルータの経由情報を含む通信経路を検出するとともに、地域特定部12がIPアドレス使用地域情報を記憶した地域データベースを参照して、検出された通信経路の末端に位置するルータのIPアドレスから地域を特定する。ここで、通信経路検出部11により検出された通信経路に含まれるルータの数が所定数より少ない場合は、地域特定部12が地域を特定する際に、検出経路に含まれるルータの数に基づいて、IPアドレスから特定する地域の広さを変えるようにしている。
【0044】
このように構成した本実施形態によれば、送信元のユーザ端末まで(通信経路の終端まで)通信経路を検出できた場合に経由するルータの数が所定数になるというネットワーク上の特性を利用して、検出経路に含まれるルータの数に基づいて広さを可変とした地域を特定することができる。このため、送信元のユーザ端末まで通信経路を辿ることができない場合であっても、検出経路の末端に位置するルータのIPアドレスに基づく地域を、辿ることができたところまでの通信経路に含まれるルータの数に応じた広さで特定することができる。
【0045】
また、本実施形態では、検出経路に含まれるルータの数が所定数より少ない場合、ルータの数に応じた広さの地域のうち、経路データベースに記憶されている履歴経路において検出経路の末端よりも先にある経路上に位置するルータのIPアドレスに対応する地域を除いた広さの地域を特定するようにしている。これにより、検出経路に含まれるルータの数に応じて特定される広さの地域の中で、できるだけ狭い範囲に絞り込んだ地域を特定することが可能となる。
【0046】
なお、送信元のホストと送信先のホストとの距離が長い場合(例えば、北海道と沖縄のような場合)、中継する個々のルータ間の距離も長くなる。この場合、検出経路に含まれるルータの数が所定数より少ないときに、そのルータの数に応じて特定される広さの地域の中に、送信元のユーザ端末が実際には存在しない可能性が生じ得る。そこで、地域特定部12は、以下のような処理を行うことにより、特定した地域の中にユーザ端末が実際に存在する可能性の高さ(言い換えると、地域推定の確からしさ)を示す指標値を提示するようにしてもよい。
【0047】
すなわち、地域特定部12は、検出経路に含まれる個々のルータのIPアドレスをもとに地域データベースを参照することにより、各IPアドレスに対応する都道府県単位の地域を特定し、ルータ間の距離を特定する。この場合の距離は、例えば県庁所在地間の距離であり、既知の値である。この距離が長くなればなるほど、検出経路の末端のルータのIPアドレスをもとに特定した地域の中にユーザ端末が実際に存在する可能性が低くなる。そこで、地域特定部12は、特定した距離の長さにおじてあらかじめ設定された指標値を、特定した地域の情報と共に提示する。なお、指標値を決定する際に用いるルータ間の距離は、検出経路の末端のルータと1つ手前のルータとの距離としてもよい。
【0048】
なお、上記実施形態では、送信先のホストを指定して経路探索コマンドを実行することにより、送信先のホストから送信元のホストまでの間の通信経路を送信方向とは逆向きに探索し、検出された通信経路の末端のルータのIPアドレスから送信元のユーザ端末(その直下のルータ)が使用されている地域を特定する例について説明したが、本発明はこれに限定されない。例えば、送信元のホストを指定して経路探索コマンドを実行することにより、送信元のホストから送信先のホストまでの間の通信経路を順方向に探索し、検出された通信経路の末端のルータのIPアドレスから送信先のユーザ端末(その直下のルータ)が使用されている地域を特定することも可能である。
【0049】
また、上記実施形態では、通信経路検出部11により検出される通信経路に含まれるルータの数が5個の場合は都道府県単位の地域を特定し、4個の場合は地方単位の地域、3個の場合は地方群単位の地域、2個以下の場合は国単位の地域を特定する例について説明したが、これは一例を示したものに過ぎない。
【0050】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。