(57)【特許請求の範囲】
【請求項１】
コンピュータにより実行する携帯端末の位置データを利用してＩＰアドレスの地理的位置を特定する方法であって、
各々がユーザ識別情報、時間、及び地理的位置を含む位置データレコードを複数有する地理的位置のデータセットを生成するように、予め設定した時間帯にユーザが使用した携帯端末の位置データを獲得するステップ１と、
前記地理的位置のデータセットを前処理するステップ２と、
前記地理的位置のデータセットに基づいて前記ユーザの各々の毎日の第１の時間帯における前記位置データレコードを獲得するとともに、前記第１の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザの前記第１の時間帯における第１の候補位置とし、及び前記地理的位置のデータセットに基づいて前記ユーザの各々の毎日の第２の時間帯における前記位置データレコードを獲得するとともに、前記第２の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザの前記第２の時間帯における第２の候補位置とするステップ３と、
各々が前記ユーザ識別情報、時間、及びＩＰアドレスを含むＩＰアドレスのデータレコードを複数有するＩＰアドレスのデータセットを生成するように、前記予め設定した時間帯に前記ユーザが使用した固定端末に対応するＩＰアドレスデータを獲得するステップ４と、
前記ＩＰアドレスのデータレコードの各々における前記ＩＰアドレスをそれぞれＩＰセグメントに変換し、前記ユーザが使用する前記ＩＰセグメントに対応する前記ＩＰアドレスデータレコードの数が予め定められた第１の閾値より小さい場合、前記ＩＰアドレスのデータセットから前記ＩＰセグメントに対応する前記ＩＰアドレスのデータレコードを削除するように、前記ＩＰアドレスのデータセットを前処理するステップ５と、
前処理された前記ＩＰアドレスのデータセットにおけるＩＰセグメントに基づき、前記ＩＰセグメントを使用するすべてのユーザを獲得し、前記すべてのユーザに対応する前記第１の候補位置と前記第２の候補位置を前記ＩＰセグメントの候補地理的位置として獲得するとともに、一連の集合を得られるように、前記候補地理的位置をクラスタリングし、前記一連の集合から前記候補地理的位置を最も多く含む集合を獲得し、前記集合に対応する重心を前記ＩＰセグメントに対応する地理的位置とするステップ６と
を含むことを特徴とする方法。
【請求項２】
ステップ２が、
地理的位置のデータセットから一つの未処理ユーザを獲得するステップ２１と、
前記地理的位置のデータセットから前記未処理ユーザのすべての位置データレコードを獲得するステップ２２と、
前記すべての位置データレコードの数が予め定められた第２の閾値より小さいか又は予め定められた第３の閾値より大きいかを判断するステップ２３と、
予め定められた第２の閾値より小さい又は予め定められた第３の閾値より大きい場合、前記地理的位置のデータセットから前記未処理ユーザに対応するすべての位置データレコードを削除するステップ２４と、
前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ２１に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、前処理を終了し、ステップ３に移行するステップ２５と
を含む請求項１に記載の方法。
【請求項３】
ステップ３が、
地理的位置のデータセットから一つの未処理ユーザを獲得するステップ３１と、
前記地理的位置のデータセットから前記未処理ユーザの毎日の第１の時間帯における位置データレコードを獲得し、２つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの第１の候補位置とするステップ３２と、
前記地理的位置のデータセットから前記未処理ユーザの毎日の第２の時間帯における位置データレコードを獲得し、２つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの第２の候補位置とするステップ３３と、
前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ３１に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、クラスタリングを終了し、ステップ４に移行するステップ３４と
を含む請求項１に記載の方法。
【請求項４】
ステップ３２において、
２つごとに位置データレコード間の地理的位置の距離を獲得することが、具体的には、
前記２つの位置データレコードにおける前記地理的位置が緯度及び経度でない場合、前記地理的位置をそれぞれ緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」に変換するとともに、緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」をそれぞれ弧度「α１，β１」と「α２，β２」に変換するステップと、
Ｓ＝ａｒｃｃｏｓ（ｓｉｎ（α１）＊ｓｉｎ（α２）＋ｃｏｓ（α１）＊ｃｏｓ（α２）＊ｃｏｓ（β１−β２））＊Ｒという公式に基づいて前記地理的位置の距離Ｓを獲得するステップとを含み、
その中におけるａｒｃｃｏｓ、ｓｉｎ、ｃｏｓはそれぞれ逆余弦、正弦、余弦記号であり、Ｒは地球赤道の半径であり、
前記ステップ３２において、仮に一つの集合が｛［ｌａｔ１，ｌｎｇ１］［ｌａｔ２，ｌｎｇ２］．．．，［ｌａｔｎ，ｌｎｇｎ］｝であれば、集合の重心を［（ｌａｔ１＋ｌａｔ２＋．．．＋ｌａｔｎ）／ｎ，（ｌｎｇ１＋ｌｎｇ２＋．．．＋ｌｎｇｎ）／ｎ］とするステップに基づいて前記集合の重心を獲得するステップと
を含み、ｎは正整数である請求項３に記載の方法。
【請求項５】
ステップ３２において、
地理的位置の距離に基づいて位置データにおける前記地理的位置をクラスタリングすることが、具体的には、
前記位置データの各々における前記地理的位置を一つの緯度及び経度を含む集合｛「ｌａｔｉ，ｌｎｇｉ」｝に変換するステップ３２１と、２つの集合ごとに、２つの前記集合から任意に１つずつ緯度及び経度を獲得した場合の最大距離と定義される前記集合間の距離を獲得するステップ３２２と、
距離が一番近い前記集合を２つ獲得し、前記距離が予め定められた第４の閾値より小さい場合、２つの前記集合を、元の２つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ３２２に戻って引き続き実行し、予め定められた第４の閾値より大きい又は予め定められた第４の閾値と同じである場合、クラスタリングを終了してステップ３３に移行するステップ３２３と
を含み、ｉが１以上の正整数である請求項３に記載の方法。
【請求項６】
ステップ５において、
ＩＰアドレスデータレコードの各々におけるＩＰアドレスをそれぞれＩＰセグメントに変換することが、具体的には、
変換された前記ＩＰアドレスに対応する前記ＩＰセグメントに保持する必要なＩＰアドレスの長さＭビットを獲得するステップと、
前記ＩＰアドレスに対応する前記ＩＰセグメントを得られるように、前記ＩＰアドレスにおける上位Ｍビットの数値を変えず、下位３２−Ｍビットの数値を０に設定するステップとを含み、
Ｍは８以上３２以下の整数である請求項１に記載の方法。
【請求項７】
ステップ６が、具体的には、
前処理されたアドレスのデータセットから一つの未処理ＩＰセグメントを獲得するステップ６１と、
前記アドレスのデータセットから前記ＩＰセグメントを使用したすべてのユーザを獲得するとともに、前記すべてのユーザの第１の候補位置と第２の候補位置を前記ＩＰセグメントの候補地理的位置として獲得し、２つごとに前記候補地理的位置間の距離を獲得し、一連の集合を得られるように前記距離に基づいてクラスタリングするステップ６２と、
前記ＩＰセグメントの地理的位置として一つの前記集合の重心を選択するステップ６３と
を含む請求項１に記載の方法。
【請求項８】
ステップ６２において、
距離に基づいてクラスタリングすることが、具体的には、
候補地理的位置の各々に対応する緯度及び経度「ｌａｔｉ，ｌｎｇｉ」を一つの緯度及び経度を含む集合｛［ｌａｔｉ，ｌｎｇｉ］｝に変換するステップ６２１と、
２つの集合ごとに、２つの前記集合から任意に一つの緯度及び経度を獲得した場合の最短距離と定義される前記集合間の距離を獲得するステップ６２２と、
距離が一番近い前記集合を２つ獲得し、前記距離が予め定められた第５の閾値より小さい場合、２つの前記集合を、元の２つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ６２２に戻って引き続き実行し、予め定められた第５の閾値より大きい又は予め定められた第５の閾値と同じである場合、クラスタリングを終了してステップ６３に移行するステップ６２３と
を含み、ｉは１以上の正整数である請求項７に記載の方法。
【請求項９】
ステップ６３において、
ＩＰセグメントの地理的位置として一つの集合の重心を選択することが、具体的には、
すべての集合を候補地理的位置を含む数の多い順に整列し、それぞれＣ１，Ｃ２，…Ｃｉ…，Ｃｎとするステップ６３１と、
Ｃ１に含まれる前記候補地理的位置の数がＣ２より大きい場合、Ｃ１を選択してステップ６３４に移行し、そうでない場合ステップ６３３に移行するステップ６３２と、
Ｃ１に含まれる前記候補地理的位置の数がＣｉと同じである場合、Ｃ１，…Ｃｉの中から一番多いユーザの数を有する前記集合を選択して、ステップ６３４に移行し、一番多いユーザの数を有する前記集合が複数ある場合、前記集合からランダムに一つを選択してステップ６３４に移行するステップ６３３と、
選択された前記集合の重心を前記ＩＰセグメントの前記地理的位置として獲得するステップ６３４と
を含み、ｎは集合の数である請求項７に記載の方法。
【請求項１０】
ユーザ識別情報、時間、及び地理的位置を含む位置データレコードを複数有する地理的位置のデータセットを生成するように、予め設定した時間帯にユーザが使用した携帯端末の位置データを獲得する第１の獲得モジュールと、
前記地理的位置のデータセットを前処理する第１の前処理モジュールと、
前記地理的位置のデータセットに基づいて前記ユーザの各々の毎日の第１の時間帯における前記位置データレコードを獲得するとともに、前記第１の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザが前記第１の時間帯における第１の候補位置とし、及び前記地理的位置のデータセットに基づいて前記ユーザが毎日の第２の時間帯における前記位置データレコードを獲得するとともに、前記第２の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザが前記第２の時間帯における第２の候補位置とする第１のクラスタリングモジュールと、
各々が前記ユーザ識別情報、時間、及びＩＰアドレスを含むＩＰアドレスのデータレコードを複数有するＩＰアドレスのデータセットを生成するように、前記予め設定した時間帯に前記ユーザが使用した固定端末に対応するＩＰアドレスデータを獲得する第２の獲得モジュールと、
前記ＩＰアドレスデータレコードの各々における前記ＩＰアドレスをそれぞれＩＰセグメントに変換し、前記ユーザが使用する前記ＩＰセグメントに対応する前記ＩＰアドレスデータレコードの数が予め定められた第１の閾値より小さい場合、前記ＩＰアドレスのデータセットから前記ＩＰセグメントに対応する前記ＩＰアドレスのデータレコードを削除するように、前記ＩＰアドレスのデータセットを前処理する第２の前処理モジュールと、
前処理された前記ＩＰアドレスのデータセットにおけるＩＰセグメントに基づき、前記ＩＰセグメントを使用するすべてのユーザを獲得し、前記すべてのユーザに対応する前記第１の候補位置と前記第２の候補位置を前記ＩＰセグメントの候補地理的位置として獲得するとともに、一連の集合を得られるように前記候補地理的位置をクラスタリングし、前記一連の集合から前記候補地理的位置を最も多く含む集合を獲得し、前記集合に対応する重心を前記ＩＰセグメントに対応する地理的位置とする第２のクラスタリングモジュールと
を含むことを特徴とするサーバ。
【請求項１１】
第１の前処理モジュールが、
地理的位置のデータセットから一つの未処理ユーザを獲得するステップ２１と、
前記地理的位置のデータセットから前記未処理ユーザのすべての位置データレコードを獲得するステップ２２と、
前記すべての位置データレコードの数が予め定められた第２の閾値より小さいか又は第３の予め定められた第３の閾値より大きいかを判断するステップ２３と、
予め定められた第２の閾値より小さい又は予め定められた第３の閾値より大きい場合、前記地理的位置のデータセットから前記未処理ユーザに対応するすべての位置データレコードを削除するステップ２４と、
前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ２１に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、前処理を終了するステップ２５と、
を更に実行するように構成されている請求項１０に記載のサーバ。
【請求項１２】
第１のクラスタリングモジュールが、
地理的位置のデータセットから一つの未処理ユーザを獲得するステップ３１と、
前記地理的位置のデータセットから前記未処理ユーザの毎日の第１の時間帯における前記位置データレコードを獲得し、２つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの第１の候補位置とするステップ３２と、
前記地理的位置のデータセットから前記未処理ユーザの毎日の第２の時間帯における前記位置データレコードを獲得し、２つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの第２の候補位置とするステップ３３と、
前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ３１に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、クラスタリングを終了するステップ３４と、
を更に実行するように構成されている請求項１０に記載のサーバ。
【請求項１３】
第１のクラスタリングモジュールが、
２つごとに位置データレコード間の地理的位置の距離を獲得するように、
２つの位置データレコードにおける前記地理的位置が緯度及び経度でない場合、前記地理的位置をそれぞれ緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」に変換し、前記緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」をそれぞれ弧度「α１，β１」と「α２，β２」に変換するステップと、
Ｓ＝ａｒｃｃｏｓ（ｓｉｎ（α１）＊ｓｉｎ（α２）＋ｃｏｓ（α１）＊ｃｏｓ（α２）＊ｃｏｓ（β１−β２））＊Ｒという公式に基づいて前記地理的位置の距離Ｓを獲得するステップと、
前記集合の重心を獲得するように、仮に一つの集合が｛［ｌａｔ１，ｌｎｇ１］［ｌａｔ２，ｌｎｇ２］．．．，［ｌａｔｎ，ｌｎｇｎ］｝であれば、前記集合の重心を［（ｌａｔ１＋ｌａｔ２＋．．．＋ｌａｔｎ）／ｎ，（ｌｎｇ１＋ｌｎｇ２＋．．．＋ｌｎｇｎ）／ｎ］とするステップと、
を更に実行するように構成され、
ａｒｃｃｏｓ、ｓｉｎ、ｃｏｓはそれぞれ逆余弦、正弦、余弦記号を指し、Ｒは地球赤道半径を指し、ｎは正整数である請求項１２に記載のサーバ。
【請求項１４】
第１のクラスタリングモジュールが、
地理的位置の距離に基づいて位置データにおける前記地理的位置をクラスタリングするように、
前記位置データの各々における前記地理的位置を一つの緯度及び経度を含む集合｛「ｌａｔｉ，ｌｎｇｉ」｝に変換するステップ３２１と、
２つの前記集合ごとに、２つの前記集合から任意に１つずつ緯度及び経度を獲得した場合の最大距離と定義される前記集合間の距離を獲得するステップ３２２と、
距離が一番近い前記集合を２つ獲得し、前記距離が予め定められた第４の閾値より小さい場合、２つの前記集合を、元の２つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ３２２に戻って引き続き実行し、予め定められた第４の閾値より大きい又は予め定められた第４の閾値と同じである場合、クラスタリングを終了してステップ３３に移行するステップ３２３と、
を更に実行するように構成され、ｉが１以上の正整数である請求項１２に記載のサーバ。
【請求項１５】
第２の前処理モジュールが、
ＩＰアドレスデータレコードの各々におけるＩＰアドレスをそれぞれＩＰセグメントに変換するように、
変換された前記ＩＰアドレスに対応する前記ＩＰセグメントに保持する必要なＩＰアドレスの長さＭビットを獲得するステップと、
前記ＩＰアドレスに対応する前記ＩＰセグメントを得られるように、前記ＩＰアドレスにおける上位Ｍビットの数値を変えず、下位３２−Ｍビットの数値を０に設定するステップと、
を更に実行するように構成され、Ｍは８以上３２以下の整数である請求項１０に記載のサーバ。
【請求項１６】
第２のクラスタリングモジュールが、
前処理されたＩＰアドレスのデータセットから一つの未処理ＩＰセグメントを獲得するステップ６１と、
前記ＩＰアドレスのデータセットから前記ＩＰセグメントを使用したすべてのユーザを獲得するとともに、前記すべてのユーザの第１の候補位置と第２の候補位置を前記ＩＰセグメントの候補地理的位置として獲得し、２つごとに前記候補地理的位置間の距離を獲得し、一連の集合を得られるように前記距離に基づいてクラスタリングするステップ６２と、
前記ＩＰセグメントの前記地理的位置として一つの前記集合の重心を選択するステップ６３と
を更に実行するように構成されている請求項１０に記載のサーバ。
【請求項１７】
第２のクラスタリングモジュールが、
距離に基づいてクラスタリングするように、
候補地理的位置の各々に対応する緯度及び経度「ｌａｔｉ，ｌｎｇｉ」を一つの緯度及び経度を含む集合｛［ｌａｔｉ，ｌｎｇｉ］｝に変換するステップ６２１と、
２つの集合ごとに、２つの前記集合から任意に一つの緯度及び経度を獲得した場合の最短距離と定義される前記集合間の距離を獲得するステップ６２２と、
距離が一番近い前記集合を２つ獲得し、前記距離が予め定められた第５の閾値より小さい場合、２つの前記集合を、元の２つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ６２２に戻って引き続き実行し、予め定められた第５の閾値より大きい又は予め定められた第５の閾値と同じである場合、クラスタリングを終了してステップ６３に移行するステップ６２３と
を更に実行するように構成され、ｉは１以上の正整数である請求項１６に記載のサーバ。
【請求項１８】
第２のクラスタリングモジュールが、
ＩＰセグメントの地理的位置として一つの前記集合の重心を選択するように、すべての集合を候補地理的位置を含む数の多い順に整列し、それぞれＣ１，Ｃ２，…Ｃｉ…，Ｃｎとするステップ６３１と、
Ｃ１に含まれる前記候補地理的位置の数がＣ２より大きい場合、Ｃ１を選択してステップ６３４に移行し、そうでない場合ステップ６３３に移行するステップ６３２と、
Ｃ１に含まれる前記候補地理的位置の数がＣｉと同じである場合、Ｃ１，…Ｃｉの中から一番多いユーザの数を有する前記集合を選択して、ステップ６３４に移行し、一番多いユーザの数を有する前記集合が複数ある場合、前記集合からランダムに一つを選択してステップ６３４に移行するステップ６３３と、
選択された前記集合の重心を前記ＩＰセグメントの前記地理的位置として獲得するステップ６３４と
を更に実行するように構成され、ｎは集合の数である請求項１７に記載のサーバ。
【請求項１９】
コンピュータに、請求項１から９のいずれかに記載の携帯端末の位置データを利用してＩＰアドレスの地理的位置を特定する方法を実行させるためのコンピュータプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ技術分野に関し、特にユーザが使用する携帯電話等の携帯端末の位置データを利用して、パソコン等の固定端末及びそれに利用されるＩＰアドレスの地理的位置を特定する方法に関する。また、本発明は更にサーバを提供する。
【背景技術】
【０００２】
コンピュータのＩＰアドレスから当該コンピュータの地理的位置を推定すること（ＩＰ測位）は幅広く応用されている。例えばオンライン広告、電子商取引、アプリケーション監視、ネットワーク診断などである。オンライン広告を例にみると、ウェブサイトがユーザのコンピュータのＩＰアドレスから正確にユーザの所在地の地理的位置を推定できれば、ウェブサイトにおいてランダムに位置と無関係の広告ではなく、ユーザの所在地付近の広告情報（例えばユーザの居住地域近くの映画館）を表示することができる。
現在のＩＰ測位方法は主に遅延測定によるものとデータベースによるものの２つに分けられる。遅延測量によるＩＰ測位は異なる地域に設置されたサーバを利用して、目標ＩＰまでのネットワーク遅延を測定し、ネットワーク遅延の長さによってこれらのサーバから目標ＩＰまでの実際の距離を推定する。この方法は通常１０〜４０キロメートルの精度に達することができるが、各地に大規模にサーバを設置しなければならないため、コストも比較的高い。同時に、大規模にわたるネットワーク遅延を測定するため、一つのＩＰアドレスの地理的位置を特定するには数十秒から数分の応答時間が必要となる。データベースに基づく方法は、ユーザによって提出されたＩＰ登録情報、ドメイン名ログイン情報、位置情報等の収集された情報をデータベースに記憶し、これらのデータを利用してＩＰアドレスの地理的位置を特定する。応答時間が早いのが利点で、データベースを直接調べれば一つのＩＰアドレスの地理的位置を特定することができる。しかし、データソース自身の精度が低いため、この方法では７０キロメートル以上の精度しか取得できず、都市レベルの精度の応用ニーズしか満たせない。
【０００３】
具体的には、遅延測定によるＩＰ測位方法はＧｅｏＰｉｎｇ、ＣＢＧ、ＴＢＧ、Ｏｃｔａｎｔ、ＷａｎｇＧｅｏ等を含む。ＧｅｏＰｉｎｇはその中における最も簡単な方法で、目標ＩＰまでネットワーク遅延が一番短いサーバの位置を直接ＩＰ位置であると推定し、測位精度が３００キロメートル以上である。ＣＢＧはすべてのサーバから目標ＩＰまでのネットワーク遅延を利用してそれぞれの距離を推定し、これらの距離により目標ＩＰの可能なエリアを特定し、それからすべての可能なエリアの共通部分を目標ＩＰの位置とする。測位精度は２００キロメートルぐらいである。ＴＢＧとＯｃｔａｎｔはＣＢＧの元にネットワークのトポロジーを考慮したため、目標ＩＰをもっと小さい範囲に限定できる。ＴＢＧとＯｃｔａｎｔの測位精度は、それぞれ６０キロメートルと３５キロメートルに達する。ＷａｎｇＧｅｏはネットワーク遅延とネットワークトポロジーを考慮した上、更にウェブサイト上の郵便番号アドレスを結合し、７〜１０キロメートルの測位精度に達する。
【０００４】
データベースに基づくＩＰ測位方法はユーザによって提出されたＩＰ登録情報、ＤＮＳ情報の位置情報等を利用してＩＰアドレスの地理的位置を特定する。例えば、北京のある会社があるＩＰアドレスを登録したことがわかれば、普通はこのＩＰが北京にあるのを確定できる。ＩＰアドレスに対応するドメインネームがｒｏｕｔｅｒ−１．ｈａｉｄｉａｎ．ｃｈｉｎａｎｅｔ．ｃｎであれば、当該ＩＰアドレスは海澱区にあることが推定できる。国内における有名なＩＰ測位ウェブサイト（ＩＰ１３８、ＩＰ．ｃｎ等）はほとんどこれらの方法を利用している。もう一つの方法はユーザが自分で貢献した位置情報を利用する。例えばテンセントの位置共有ウェブサイト（ｉｐ．ｑｑ．ｃｏｍ）においてユーザが自分のＩＰアドレス及びそれに対応する位置情報を提供することができる。
現在のＩＰ測位方法及びそれらの比較を表１に示す。以下のとおりまとめられる。
１、遅延測定による方法は応答時間が長く、デプロイコストが高く、最高の測位精度は７〜１０キロメートルに達する。
２、データベースに基づく方法は応答時間が早く、デプロイコストも低いが、測位精度も低い。
３、上述の２つの方法は、オンライン広告などの応用に必要な街レベル（例えば２キロメートル以内）の測位精度をいずれも満たせない。
［表１］  現在のＩＰ測位方法及びそれらの比較
【表１】
0006042997.tif 000002
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、少なくとも上記の技術課題の一つをある程度解決することを目的とする。
このため、本発明は携帯端末の位置データを利用してＩＰの地理的位置を特定する方法を提供することを一つ目の目的とし、当該方法は街レベルのＩＰ測位精度を実現でき、同時に簡単にデプロイできることと応答速度が速いことなどの利点がある。
本発明はサーバを提供することを別の目的とする。
本発明はコンピュータ読み取り可能な記憶媒体を提供することを更に別の目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明に関る第１の実施形態は携帯端末の位置データを利用してＩＰの地理的位置を特定する方法を提供する。当該方法は、各々がユーザ識別情報（ＩＤ）、時間、及び地理的位置を含む位置データレコードを複数有する地理的位置のデータセットを生成するように、予め設定した時間帯にユーザが使用した携帯端末の位置データを獲得するステップ１と、
前記地理的位置のデータセットを前処理するステップ２と、
前記地理的位置のデータセットに基づいて前記ユーザの各々の毎日の第１の時間帯における前記位置データレコードを獲得するとともに、前記第１の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザの前記第１の時間帯における第１の候補位置とし、及び前記地理的位置のデータセットに基づいて前記ユーザの各々の毎日の第２の時間帯における前記位置データレコードを獲得するとともに、前記第２の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザの前記第２の時間帯における第２の候補位置とするステップ３と、
前記ユーザ識別情報、時間、及びＩＰアドレスを含むＩＰアドレスのデータレコードを複数有するＩＰアドレスのデータセットを生成するように、前記予め設定した時間帯に前記ユーザが使用した固定端末に対応するＩＰアドレスデータを獲得するステップ４と、前記ＩＰアドレスデータレコードにおける前記ＩＰアドレスをそれぞれＩＰセグメントに変換し、前記ユーザが使用する前記ＩＰセグメントに対応する前記ＩＰアドレスデータレコードの数が予め定められた第１の閾値より小さい場合、前記ＩＰアドレスのデータセットから前記ＩＰセグメントに対応する前記ＩＰアドレスのデータレコードを削除するように、前記ＩＰアドレスのデータセットを前処理するステップ５と、前処理された前記ＩＰアドレスのデータセットにおけるＩＰセグメントに基づき、前記ＩＰセグメントを使用するすべてのユーザを獲得し、前記すべてのユーザに対応する前記第１の候補位置と前記第２の候補位置を前記ＩＰセグメントの候補地理的位置として獲得するとともに、一連の集合を得られるように前記候補地理的位置をクラスタリングし、前記一連の集合から前記候補地理的位置を最も多く含む集合を獲得し、前記集合に対応する重心を前記ＩＰセグメントに対応する地理的位置とするステップ６を含む。
【０００７】
本発明の一実施形態では、前記ステップ２は、前記地理的位置のデータセットから一つの未処理ユーザを獲得するステップ２１と、前記地理的位置のデータセットから前記未処理ユーザのすべての位置データレコードを獲得するステップ２２と、前記すべての位置データレコードの数が予め定められた第２の閾値より小さいか又は予め定められた第３の閾値より大きいかを判断するステップ２３と、予め定められた第２の閾値より小さい又は予め定められた第３の閾値より大きい場合、前記地理的位置のデータセットから前記未処理ユーザに対応するすべての位置データレコードを削除するステップ２４と、前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ２１に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、前処理を終了し、ステップ３に移行するステップ２５とを含む。
【０００８】
本発明の一実施形態では、ステップ３は、前記地理的位置のデータセットから一つの未処理ユーザを獲得するステップ３１と、前記地理的位置のデータセットから前記未処理ユーザの毎日の第１の時間帯における前記位置データレコードを獲得し、２つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの前記第１の候補位置とするステップ３２と、前記地理的位置のデータセットから前記未処理ユーザの毎日の第２の時間帯における前記位置データレコードを獲得し、２つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの前記第２の候補位置とするステップ３３と、前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ３１に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、クラスタリングを終了し、ステップ４に移行するステップ３４とを含む。
【０００９】
本発明の一実施形態では、前記ステップ３２において、２つごとに前記位置データレコード間の地理的位置の距離を獲得することが、具体的には、前記２つの位置データレコードにおける前記地理的位置が緯度及び経度でない場合、前記地理的位置をそれぞれ緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」に変換するとともに、緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」をそれぞれ弧度「α１，β１」と「α２，β２」に変換するステップと、Ｓ＝ａｒｃｃｏｓ（ｓｉｎ（α１）＊ｓｉｎ（α２）＋ｃｏｓ（α１）＊ｃｏｓ（α２）＊ｃｏｓ（β１−β２））＊Ｒという公式に基づいて前記地理的位置の距離Ｓを獲得するステップとを含み、そのうち、ａｒｃｃｏｓ、ｓｉｎ、ｃｏｓはそれぞれ逆余弦、正弦、余弦記号で、Ｒは地球赤道の半径である。前記ステップ３２において、仮に一つの集合が｛［ｌａｔ１，ｌｎｇ１］［ｌａｔ２，ｌｎｇ２］．．．，［ｌａｔｎ，ｌｎｇｎ］｝であれば、前記集合の重心を［（ｌａｔ１＋ｌａｔ２＋．．．＋ｌａｔｎ）／ｎ，（ｌｎｇ１＋ｌｎｇ２＋．．．＋ｌｎｇｎ）／ｎ］（ｎは正整数である）とするステップに基づいて前記集合の重心を獲得する。
【００１０】
本発明の一実施形態では、前記ステップ３２において、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングすることが、具体的には、前記位置データの各々における前記地理的位置を一つの緯度及び経度を含む集合｛「ｌａｔｉ，ｌｎｇｉ」｝（ｉが１以上の正整数である）に変換するステップ３２１と、２つの前記集合ごとに、２つの前記集合から任意に１つずつ緯度及び経度を獲得した場合の最大距離と定義される前記集合間の距離を獲得するステップ３２２と、距離が一番近い前記集合を２つ獲得し、前記距離が予め定められた第４の閾値より小さい場合、２つの前記集合を、元の２つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ３２２に戻って引き続き実行し、予め定められた第４の閾値より大きい又は予め定められた第４の閾値と同じである場合、クラスタリングを終了してステップ３３に移行するステップ３２３とを含む。
【００１１】
本発明の一実施形態では、前記ステップ５において、前記ＩＰアドレスデータレコードの各々における前記ＩＰアドレスをそれぞれＩＰセグメントに変換することが、具体的には、変換された前記ＩＰアドレスに対応する前記ＩＰセグメントに保持するのに必要なＩＰアドレスの長さＭ（Ｍは８以上３２以下の整数である）ビットを獲得するステップと、前記ＩＰアドレスに対応する前記ＩＰセグメントを得るように、前記ＩＰアドレスにおける上位Ｍビットの数値を変えず、下位３２−Ｍビットの数値を０に設定するステップとを含む。
【００１２】
本発明の一実施形態では、前記ステップ６は、具体的には、前処理された前記ＩＰアドレスのデータセットから一つの未処理ＩＰセグメントを獲得するステップ６１と、前記アドレスのデータセットから前記ＩＰセグメントを使用したすべてのユーザを獲得するとともに、前記すべてのユーザの前記第１の候補位置と前記第２の候補位置を前記ＩＰセグメントの候補地理的位置として獲得し、２つごとに前記候補地理的位置間の距離を獲得し、一連の集合を得られるように前記距離に基づいてクラスタリングするステップ６２と、前記ＩＰセグメントの前記地理的位置として一つの前記集合の重心を選択するステップ６３とを含む。
【００１３】
本発明の一実施形態では、前記ステップ６２において、前記距離に基づいてクラスタリングすることが、具体的には、前記候補地理的位置の各々に対応する緯度及び経度「ｌａｔｉ，ｌｎｇｉ」を一つの緯度及び経度を含む集合｛［ｌａｔｉ，ｌｎｇｉ］｝（ｉは１以上の正整数である）に変換するステップ６２１と、２つの集合ごとに、２つの前記集合から任意に一つの緯度及び経度を獲得した場合の最短距離と定義される前記集合間の距離を獲得するステップ６２２と、距離が一番近い前記集合を２つ獲得し、前記距離が予め定められた第５の閾値より小さい場合、２つの前記集合を、元の２つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ６２２に戻って引き続き実行し、予め定められた第５の閾値より大きい又は予め定められた第５の閾値と同じである場合、クラスタリングを終了してステップ６３に移行するステップ６２３とを含む。
【００１４】
本発明の一実施形態では、前記ステップ６３において、前記ＩＰセグメントの前記地理的位置として一つの前記集合の重心を選択することが、具体的には、すべての集合を前記候補地理的位置を含む数の多い順に整列し、それぞれＣ１，Ｃ２，…Ｃｉ…，Ｃｎ（ｎは集合の数である）とするステップ６３１と、Ｃ１に含まれる前記候補地理的位置の数がＣ２より大きい場合、Ｃ１を選択してステップ６３４に移行し、そうでない場合ステップ６３３に移行するステップ６３２と、Ｃ１に含まれる前記候補地理的位置の数がＣｉと同じである場合、Ｃ１，…Ｃｉの中から一番多いユーザの数を有する前記集合を選択して、ステップ６３４に移行し、一番多いユーザの数を有する前記集合が最初に複数ある場合、前記集合からランダムに一つを選択してステップ６３４に移行するステップ６３３と、選択された前記集合の重心を前記ＩＰセグメントの前記地理的位置として獲得するステップ６３４とを含む。
【００１５】
本発明に係る予め設定した時間帯は一ヶ月又は一年のような任意の長さの時間であってもよい。本発明に係る閾値又は数の選択は任意の値と設定してもよく、これらの値は方法自身に影響をもたらさず、結果の精度にだけ影響を及ぼすだけである。
【００１６】
本発明に係る携帯端末の位置データを利用してＩＰの地理的位置を特定する方法は下記の原理によるものである。大部分の人は毎日の活動に強い規則性があり、即ち普通第１の時間帯（夜）は家に、平日の第２の時間帯（昼）は職場にいる。ユーザが使う携帯端末（例えば携帯電話）の位置データ（通常はＧＰＳによって獲得する）を集めれば、夜の位置データレコードがユーザの家の付近に集中し、平日の昼の位置データレコードが職場の付近に集中することになる。これによってあるユーザの大体の家と職場の地理的位置を推定できる。同時にユーザが使う固定端末のＩＰ利用レコードも集められる。集められたＩＰ利用レコードのデータからあるＩＰセグメントが複数のユーザの固定端末に使われることがわかれば、このＩＰセグメントがこれらのユーザの家と職場が集中する地理的位置にある可能性が高い。
【００１７】
本発明の実施形態に係る携帯端末の位置データを利用してＩＰの地理的位置を特定する方法は少なくとも下記の特徴及び有益な効果がある。ユーザが使用する携帯端末（例えばＧＰＳ機能付き携帯電話）が生じた位置データを利用して当該ユーザが使用した固定端末（例えば家庭用パソコン、オフィスパソコン）、サーバなど及びそれらに使われたＩＰアドレスに対応する地理的位置を間接に推定する。携帯端末が提供した高精度の地理的位置データを間接に利用したため、街レベルのＩＰアドレス測位精度が実現され、同時に設置が簡単で応答時間が速い等の利点もある。
【００１８】
上記の目的を実現するため、本発明の第２の実施形態はサーバを提供する。当該サーバは、各々が、ユーザ識別情報、時間、及び地理的位置を含む位置データレコードを複数有する地理的位置のデータセットを生成するように、予め設定した時間帯にユーザが使用した携帯端末の位置データを獲得する第１の獲得モジュールと、前記地理的位置のデータセットを前処理する第１の前処理モジュールと、前記地理的位置のデータセットに基づいて前記ユーザの各々の毎日の第１の時間帯における前記位置データレコードを獲得するとともに、前記第１の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザの前記第１の時間帯における第１の候補位置とし、及び前記地理的位置のデータセットに基づいて前記ユーザの毎日の第２の時間帯における前記位置データレコードを獲得するとともに、前記第２の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザの前記第２の時間帯における第２の候補位置とする第１のクラスタリングモジュールと、前記ユーザ識別情報、時間、及びＩＰアドレスを含むＩＰアドレスのデータレコードを複数有するＩＰアドレスのデータセットを生成するように、前記予め設定した時間帯に前記ユーザが使用した固定端末に対応するＩＰアドレスデータを獲得する第２の獲得モジュールと、前記ＩＰアドレスデータレコードの各々における前記ＩＰアドレスをそれぞれＩＰセグメントに変換し、前記ユーザが使用する前記ＩＰセグメントに対応する前記ＩＰアドレスデータレコードの数が予め定められた第１の閾値より小さい場合、前記ＩＰアドレスのデータセットから前記ＩＰセグメントに対応する前記ＩＰアドレスのデータレコードを削除するように、前記ＩＰアドレスのデータセットを前処理する第２の前処理モジュールと、前処理された前記ＩＰアドレスのデータセットのそれぞれにおけるＩＰセグメントに基づき、前記ＩＰセグメントを使用するすべてのユーザを獲得し、前記すべてのユーザに対応する前記第１の候補位置と前記第２の候補位置を前記ＩＰセグメントの候補地理的位置として獲得するとともに、一連の集合を得られるように前記候補地理的位置をクラスタリングし、前記一連の集合から前記候補地理的位置を最も多く含む集合を獲得し、前記集合に対応する重心を前記ＩＰセグメントに対応する地理的位置とする第２のクラスタリングモジュールとを含む。
【００１９】
本発明の一実施形態では、前記第１の前処理モジュールは、前記地理的位置のデータセットから一つの未処理ユーザを獲得するステップ２１と、前記地理的位置のデータセットから前記未処理ユーザのすべての位置データレコードを獲得するステップ２２と、前記すべての位置データレコードの数が予め定められた第２の閾値より小さいか又は予め定められた第３の閾値より大きいかを判断するステップ２３と、予め定められた第２の閾値より小さい又は予め定められた第３の閾値より大きい場合、前記地理的位置のデータセットから前記未処理ユーザに対応するすべての位置データレコードを削除するステップ２４と、前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ２１に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、前処理を終了するステップ２５とを更に実行するように構成されている。
【００２０】
本発明の一実施形態では、前記第１のクラスタリングモジュールは、前記地理的位置のデータセットから一つの未処理ユーザを獲得するステップ３１と、前記地理的位置のデータセットから前記未処理ユーザの毎日の第１の時間帯における前記位置データレコードを獲得し、２つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの前記第１の候補位置とするステップ３２と、前記地理的位置のデータセットから前記未処理ユーザの毎日の第２の時間帯における前記位置データレコードを獲得し、２つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの前記第２の候補位置とするステップ３３と、前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ３１に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、クラスタリングを終了するステップ３４とを更に実行するように構成されている。
【００２１】
本発明の一実施形態では、前記第１のクラスタリングモジュールは、２つごとに前記位置データレコードの地理的位置間の距離を獲得するように、前記２つの位置データレコードにおける前記地理的位置が緯度及び経度でない場合、前記地理的位置をそれぞれ緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」に変換し、前記緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」をそれぞれ弧度「α１，β１」と「α２，β２」に変換するステップと、Ｓ＝ａｒｃｃｏｓ（ｓｉｎ（α１）＊ｓｉｎ（α２）＋ｃｏｓ（α１）＊ｃｏｓ（α２）＊ｃｏｓ（β１−β２））＊Ｒ（ここで、ａｒｃｃｏｓ、ｓｉｎ、ｃｏｓはそれぞれ逆余弦、正弦、余弦記号を指し、Ｒは地球赤道の半径を表す）という公式に基づいて前記地理的位置の距離Ｓを獲得するステップと、前記集合の重心を獲得するように、仮に一つの集合が｛［ｌａｔ１，ｌｎｇ１］［ｌａｔ２，ｌｎｇ２］．．．，［ｌａｔｎ，ｌｎｇｎ］｝であれば、前記集合の重心を［（ｌａｔ１＋ｌａｔ２＋．．．＋ｌａｔｎ）／ｎ，（ｌｎｇ１＋ｌｎｇ２＋．．．＋ｌｎｇｎ）／ｎ］（ｎは正整数である）とするステップを更に実行するように構成されている。
【００２２】
本発明の一実施形態では、前記第１のクラスタリングモジュールは、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするように、前記位置データの各々における前記地理的位置を一つの緯度及び経度を含む集合｛「ｌａｔｉ，ｌｎｇｉ」｝（ｉが１以上の正整数である）に変換するステップ３２１と、２つの前記集合ごとに、２つの前記集合から任意に１つずつ緯度及び経度を獲得した場合の最大距離と定義される前記集合間の距離を獲得するステップ３２２と、距離が一番近い前記集合を２つ獲得し、前記距離が予め定められた第４の閾値より小さい場合、２つの前記集合を、元の２つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ３２２に戻って引き続き実行し、予め定められた第４の閾値より大きい又は予め定められた第４の閾値と同じである場合、クラスタリングを終了してステップ３３に移行するステップ３２３とを更に実行するように構成されている。
【００２３】
本発明の一実施形態では、前記第２の前処理モジュールは、前記ＩＰアドレスデータレコードの各々における前記ＩＰアドレスをそれぞれＩＰセグメントに変換するように、変換された前記ＩＰアドレスに対応する前記ＩＰセグメントに保持するのに必要なＩＰアドレスの長さＭビットを獲得するステップと、前記ＩＰアドレスに対応する前記ＩＰセグメントを得るように、前記ＩＰアドレスにおける上位Ｍビットの数値を変えず、下位３２−Ｍビットの数値を０に設定するステップとを更に実行するように構成されている。Ｍは８以上３２以下の整数である。
【００２４】
本発明の一実施形態では、前記第２のクラスタリングモジュールは、前処理された前記ＩＰアドレスのデータセットから一つの未処理ＩＰセグメントを獲得するステップ６１と、前記アドレスのデータセットから前記ＩＰセグメントを使用したすべてのユーザを獲得するとともに、前記すべてのユーザの前記第１の候補位置と前記第２の候補位置を前記ＩＰセグメントの候補地理的位置として獲得し、２つごとに前記候補地理的位置の距離を獲得し、一連の集合を得られるように前記距離に基づいてクラスタリングするステップ６２と、前記ＩＰセグメントの前記地理的位置として一つの前記集合の重心を選択するステップ６３とを更に実行するように構成されている。
【００２５】
本発明の一実施形態では、前記第２のクラスタリングモジュールは、前記距離に基づいてクラスタリングするように、前記候補地理的位置の各々に対応する緯度及び経度「ｌａｔｉ，ｌｎｇｉ」を一つの緯度及び経度を含む集合｛［ｌａｔｉ，ｌｎｇｉ］｝（ｉは１以上の正整数である）に変換するステップ６２１と、２つの集合ごとに、２つの前記集合から任意に一つの緯度及び経度を獲得した場合の最短距離と定義される前記集合間の距離を獲得するステップ６２２と、距離が一番近い前記集合を２つ獲得し、前記距離が予め定められた第５の閾値より小さい場合、２つの前記集合を、元の２つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ６２２に戻って引き続き実行し、予め定められた第５の閾値より大きい又は予め定められた第５の閾値と同じである場合、クラスタリングを終了してステップ６３に移行するステップ６２３とを更に実行するように構成されている。
【００２６】
本発明の一実施形態では、前記第２のクラスタリングモジュールは、前記ＩＰセグメントの前記地理的位置として一つの前記集合の重心を選択するように、前記集合を前記候補地理的位置を含む数の多い順に整列し、それぞれＣ１，Ｃ２，…Ｃｉ…，Ｃｎ（ｎは集合の数である）とするステップ６３１と、Ｃ１に含まれる前記候補地理的位置の数がＣ２より大きい場合、Ｃ１を選択してステップ６３４に移行し、そうでない場合ステップ６３３に移行するステップ６３２と、Ｃ１に含まれる前記候補地理的位置の数がＣｉと同じである場合、Ｃ１，…Ｃｉの中から一番多いユーザの数を有する前記集合を選択して、ステップ６３４に移行し、一番多いユーザの数を有する前記集合が複数ある場合、前記集合からランダムに一つを選択してステップ６３４に移行するステップ６３３と、選択された前記集合の重心を前記ＩＰセグメントの前記地理的位置として獲得するステップ６３４とを更に実行するように構成されている。
【００２７】
本発明の実施形態に係るサーバは少なくとも下記特徴及び有益な効果がある。ユーザが使用する携帯端末（例えばＧＰＳ機能付き携帯電話）が生じた位置データを利用して当該ユーザが使用した固定端末（例えば家庭用パソコン、オフィスパソコン）、サーバ及びそれらに使われたＩＰアドレスに対応する地理的位置を間接に推定する。携帯端末が提供した高精度の地理的位置データを間接に利用したため、当該サーバは街レベルのＩＰアドレス測位精度が実現され、同時に設置が簡単で応答時間が速い等の利点もある。
【００２８】
上記目的を実現するため、本発明の第３の実施形態はコンピュータ読み取り可能な記憶媒体を提供する。コンピュータ読み取り可能な記憶媒体は、コンピュータが本発明の第１の実施形態による前記携帯端末の位置データを利用してＩＰ地理的位置を特定する方法を実行させるためのコンピュータプログラムを記憶するように構成されている。
【００２９】
本発明の追加の態様及び利点が下記の説明において部分的に表され、一部が下記の説明より明らかとなり、或は本発明の実行より了解できる。
【図面の簡単な説明】
【００３０】
本発明のこれらの及び/又は付加の態様及び利点は、添付図面を参照してなされる以下の説明から明らかになり、より容易に認識される。
【図１】本発明の実施形態における全体のフローチャートである。
【図２】本発明の実施形態による地理的位置のデータセットを前処理する（ステップ２）を示すフローチャートである。
【図３】本発明の実施形態による第１の候補位置と第２の候補位置を得られるように位置データレコードをクラスタリングする（ステップ３）フローチャートである。
【図４】本発明の実施形態によるサーバを示すブロック図である。
【発明を実施するための形態】
【００３１】
以下、本発明の実施の形態を詳細に説明する。前記実施の形態の実例が図面において示されるが、同一の又は類似する符号が同一又は類似の部品又は同一又は類似の機能を有する部品を表す。以下、図面を参照しながら説明する実施形態は、例示的なものであり、本発明を一般的に理解するために用いられる。実施形態は、本発明を限定するように解釈されてはならない。
【００３２】
本発明における「第１」、「第２」等の用語は単に説明のためのみに用いられ、相対的な重要性に明示的にも暗示的にも関連づけられ使用されるものではない。また、本発明において、別途、明確に限定した場合を除き、「繋がり」、「接続」などの用語を広義に理解すべきである。例えば、機械的な接続でもよいし、電気接続でもよい。また、直接の繋がりでもよいし、ものを介する間接の繋がりでもよい。本分野の技術者は、具体的な状況によって本発明における上記用語の意味を理解できる。また、本発明において、別途明確に限定した場合を除き、用語「複数」は２つ又は２つ以上を指す。
【００３３】
フローチャートにおいて又はここで他の方式で説明された論理又はステップは、一つ又は複数の論理機能又はステップを実現するための実行可能な命令の符号のモジュール、断片又は部分であり、並びに本発明の好ましい実施形態は他の形態も含み、例示された又は議論された順序（関与された機能とほぼ同じ方式又は逆の順序を含む）によらず実行できることは、当業者であれば理解すべきである。以下の説明と図面を参照して、本発明の実施形態のこれら及び他の態様をよりはっきり了解できる。これらの説明と図面において、本発明の実施形態に係る特定の実施方式を公開して本発明の実施形態の原理の方式が表れたが、上記の実施形態は、本発明を限定するように解釈される事が出来ず、本発明の要旨及び範囲を逸脱しない範囲で実施形態における変更、入れ替え及び修正、変型がなされることができることを当業者によって認識された。
【００３４】
以下は図面を参照しながら本発明の実施形態による携帯端末の位置データを利用してＩＰ地理的位置を特定する方法を説明する。
本発明は、ユーザがインスタントメッセンジャーソフトＩＭ又はソーシャルアプリケーション、例えばテンセントの携帯版ＱＱ、携帯ウェイボー等のアプリケーションを使用することを例にユーザが使用する携帯端末の位置データの収集ルートを説明し、ユーザがテンセントのデスクトップ版ＱＱを使用することを例にユーザが使用する固定端末のＩＰアドレスデータの収集ルートを説明する。ユーザがテンセントの携帯版ＱＱ、携帯ウェイボー等のアプリケーションを使用するとき、「足跡」、「説説」などの機能を利用して自分の地理的位置情報を提供することができる。これらの地理的位置情報はユーザのログインＩＤ（本発明におけるユーザ識別情報）、提供した時間及び地理的位置（ＧＰＳ機能を利用して獲得された緯度及び経度データ）を含む。ユーザがデスクトップ版テンセントＱＱにログインするたびに、サーバはユーザが提供したデータに基づいてそれぞれのログイン情報を記録する。これらのログイン情報はユーザのログインＩＤ（ユーザ識別情報）、ログイン時間及びログインしたＩＰアドレスを含む。前記ユーザが自分で提供した地理的位置情報とデスクトップ版ＱＱのログイン情報に基づいて、本発明の実施形態に必要とされる地理的位置のデータセットとＩＰアドレスのデータセットとを獲得することができる。
【００３５】
本方法の実施形態は以下のステップを含む。
各々がユーザ識別情報、時間、及び地理的位置を含む位置データレコードを複数有する地理的位置のデータセットを生成するように、予め設定した時間帯（長くても短くてもよい、例えば一ヶ月）にユーザが使用した携帯端末の位置データを獲得するステップ１である。
本発明の一実施形態では、位置データは緯度及び経度（「ｌａｔ，ｌｎｇ」）であり、収集された位置のデータセットをＭｙＳＱＬデータベースに格納される。データレコードの形式は表２に示される。
［表２］  携帯端末の位置データの格納形式
【表２】
0006042997.tif 000003
【００３６】
地理的位置のデータセットを前処理するステップ２である。
図に示されているように、本ステップは、地理的位置のデータセットから一つの未処理ユーザ（ユーザ識別情報）を獲得するステップ２１と、地理的位置のデータセットから当該未処理ユーザのすべての位置データレコードを獲得するステップ２２と、すべての位置データレコードの数が予め定められた第２の閾値（実際の状況に応じて設定し、本実施形態では１０件である）より小さいか又は予め定められた第３の閾値（実際の状況に応じて設定し、本実施形態では１０００件である）より大きいかを判断するステップ２３と、予め定められた第２の閾値より小さい又は予め定められた第３の閾値より大きい場合、地理的位置のデータセットから当該未処理ユーザに対応するすべての位置データレコードを削除するステップ２４と、地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ２１に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、前処理を終了し、ステップ３に移行するステップ２５とを含む。
【００３７】
地理的位置のデータセットに基づいてユーザの各々の毎日の第１の時間帯（夜）における位置データレコードを獲得するとともに、第１の時間帯における位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心をユーザの第１の時間帯における第１の候補位置とし、並びに地理的位置のデータセットに基づいてユーザの各々の毎平日の第２の時間帯（昼）における位置データレコードを獲得するとともに、第２の時間帯における位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心をユーザの第２の時間帯における第２の候補位置とするステップ３である。
本発明の一実施形態では、当該ユーザの第１の候補位置と第２の候補位置がＭｙＳＱＬデータベースに格納されている。格納形式は表３に示される。
［表３］  ユーザの第１の候補位置と第２の候補位置におけるデータの格納形式
【表３】
0006042997.tif 000004
【００３８】
図３に示されているように、本ステップは、地理的位置のデータセットから一つの未処理ユーザを獲得するステップ３１と、地理的位置のデータセットから当該未処理ユーザの毎日の第１の時間帯（本実施形態では毎日夜８時〜朝７時である）における位置データレコードを獲得し、２つごとに位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、地理的位置の距離に基づいて位置データにおける地理的位置をクラスタリングするとともに、一連の集合における一つ又は複数の集合の重心を未処理ユーザの第１の候補位置とするステップ３２と、地理的位置のデータセットから未処理ユーザの毎日の第２の時間帯（本実施形態では月曜日〜金曜日の午前９時〜午後６時である）における位置データレコードを獲得し、２つごとに位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、地理的位置の距離に基づいて位置データにおける地理的位置をクラスタリングするとともに、一連の集合における一つ又は複数の前記集合の重心を未処理ユーザの前記第２の候補位置とするステップ３３と、地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ３１に戻って継続し、地理的位置のデータセットの中に未処理ユーザがない場合、クラスタリングを終了し、ステップ４に移行するステップ３４とを含む。
【００３９】
上記ステップ３２において、２つごとに位置データレコード間の地理的位置の距離を獲得することが、具体的に、２つの位置データレコードにおける地理的位置が緯度及び経度でない場合、地理的位置をそれぞれ緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」に変換するとともに、緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」をそれぞれ弧度「α１，β１」と「α２，β２」に変換するステップと、Ｓ＝ａｒｃｃｏｓ（ｓｉｎ（α１）＊ｓｉｎ（α２）＋ｃｏｓ（α１）＊ｃｏｓ（α２）＊ｃｏｓ（β１−β２））＊Ｒという公式に基づいて前記地理的位置の距離Ｓを獲得するステップとを含み、その中におけるａｒｃｃｏｓ、ｓｉｎ、ｃｏｓはそれぞれ逆余弦、正弦、余弦記号であり、Ｒは地球赤道の半径（デフォルト値６３７８１３７．０メートル）である。
【００４０】
上記ステップ３２において、地理的位置の距離に基づいて位置データにおける地理的位置をクラスタリングすることが、具体的に、位置データの各々における前記地理的位置を一つの緯度及び経度を含む集合｛「ｌａｔｉ，ｌｎｇｉ」｝（ｉが１以上の正整数である）に変換するステップ３２１と、２つの集合から任意に１つずつ緯度及び経度を獲得した場合の最大距離と定義される２つごとに集合間の距離を獲得するステップ３２２と、距離が一番近い集合を２つ獲得し、距離が予め定められた第４の閾値（本実施形態では２００メートルである）より小さい場合、２つの集合を、元の２つの集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ３２２に戻って引き続き実行し、予め定められた第４の閾値より大きい又は予め定められた第４の閾値と同じである場合、クラスタリングを終了してステップ３３に移行するステップ３２３とを含む。
【００４１】
上記ステップ３２において、仮に一つの集合が｛［ｌａｔ１，ｌｎｇ１］［ｌａｔ２，ｌｎｇ２］．．．，［ｌａｔｎ，ｌｎｇｎ］｝であれば、集合の重心を［（ｌａｔ１＋ｌａｔ２＋．．．＋ｌａｔｎ）／ｎ，（ｌｎｇ１＋ｌｎｇ２＋．．．＋ｌｎｇｎ）／ｎ］（ｎは正整数である）とするステップに基づいて集合の重心を獲得する。
【００４２】
各々がユーザ識別情報、時間、及びＩＰアドレスを含むＩＰアドレスのデータレコードを複数有するＩＰアドレスのデータセットを生成するように、予め設定した時間帯（長くても短くてもよい、例えば一ヶ月）にユーザが使用した固定端末に対応するＩＰアドレスデータを獲得するステップ４である。
獲得されたデータをＭｙＳＱＬデータベースに格納する。本実施形態におけるデータの格納形式は表４に示されている。
［表４］  ＩＰアドレスデータの格納形式
【表４】
0006042997.tif 000005
【００４３】
ＩＰアドレスデータレコードの各々におけるＩＰアドレスをそれぞれＩＰセグメントに変換し、ユーザが使用するＩＰセグメントに対応するＩＰアドレスデータレコードの数が予め定められた第１の閾値（例えば１０より小さい）より小さい場合、ＩＰアドレスのデータセットからＩＰセグメントに対応するＩＰアドレスのデータレコードを削除するように、ＩＰアドレスのデータセットを前処理するステップ５である。
上記ステップ５において、ＩＰアドレスデータレコードの各々におけるＩＰアドレス（本実施形態はＩＰアドレス１６６．１１１．１２０．１３を例として説明する）をそれぞれＩＰセグメントに変換することが、具体的には、変換されたＩＰアドレスに対応したＩＰセグメントに保持する必要なＩＰアドレスの長さＭビットを獲得するステップ５１と、ＩＰアドレスに対応したＩＰセグメントを得られるように、ＩＰアドレスにおける上位Ｍビットの数値を変えず、下位３２−Ｍビットの数値を０に設定するステップ５２とを含み、Ｍは８以上３２以下の整数であり、本実施形態では２４とする。
本実施形態では、上位２４ビットを変えず、下位８ビットを０に設定して、１６６．１１１．１２０．１３に対応したＩＰセグメント１６６．１１１．１２０．０を獲得する。
［表５］  ＩＰアドレスをＩＰセグメントに変換された後の格納形式
【表５】
0006042997.tif 000006
【００４４】
前処理されたＩＰアドレスのデータセットにおけるＩＰセグメントに基づき、ＩＰセグメントを使用するすべてのユーザを獲得し、すべてのユーザに対応する第１の候補位置と第２の候補位置をＩＰセグメントの候補地理的位置として獲得するとともに、一連の集合を得られるように候補地理的位置をクラスタリングし、一連の集合から候補地理的位置を最も多く含む集合を獲得し、集合に対応する重心をＩＰセグメントに対応する地理的位置とするステップ６である。
本ステップは、前処理された前記ＩＰアドレスのデータセットから一つの未処理ＩＰセグメントを獲得するステップ６１と、アドレスのデータセットから当該未処理ＩＰセグメントを使用したすべてのユーザを獲得するとともに、すべてのユーザの第１の候補位置と第２の候補位置（ステップ３の結果に基づいて獲得する）をＩＰセグメントの候補地理的位置として獲得し、２つごとに候補地理的位置間の距離を獲得し、一連の集合を得られるように距離に基づいてクラスタリングするステップ６２と、ＩＰセグメントの地理的位置として一つの集合の重心を選択するステップ６３とを含む。
【００４５】
上記ステップ６２において、距離に基づいてクラスタリングすることが、具体的には、候補地理的位置の各々に対応する緯度及び経度「ｌａｔｉ，ｌｎｇｉ」を一つの緯度及び経度を含む集合｛［ｌａｔｉ，ｌｎｇｉ］｝（ｉは１以上の正整数である）に変換するステップ６２１と、２つの集合ごとに、２つの集合から任意に１つずつ緯度及び経度を獲得した場合の最短距離と定義される集合間の距離を獲得するステップ６２２と、距離が一番近い集合を２つ獲得し、距離が予め定められた第５の閾値（本実施形態では５００メートルである）より小さい場合、２つの集合を、元の２つの集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ６２２に戻って引き続き実行し、予め定められた第５の閾値（本実施形態では５００メートルである）より大きい又は予め定められた第５の閾値と同じである場合、クラスタリングを終了してステップ６３に移行するステップ６２３とを含む。
【００４６】
上記ステップ６３において、ＩＰセグメントの地理的位置として一つの集合の重心を選択することが、具体的には、すべての集合を候補地理的位置を含む数の多い順に整列し、それぞれＣ１，Ｃ２，…Ｃｉ…，Ｃｎ（ｎは集合の数である）とするステップ６３１と、Ｃ１に含まれる候補地理的位置の数がＣ２より大きい場合、Ｃ１を選択してステップ６３４に移行し、そうでない場合ステップ６３３に移行するステップ６３２と、Ｃ１に含まれる候補地理的位置の数がＣｉと同じである場合、Ｃ１，…Ｃｉの中から一番多いユーザの数を有する集合を選択して、ステップ６３４に移行し、一番多いユーザの数を有する集合が複数ある場合、集合からランダムに一つを選択してステップ６３４に移行するステップ６３３と、選択された集合の重心をＩＰセグメントの地理的位置として獲得するステップ６３４とを含む。
【００４７】
上記実施形態を実現するため、本発明はサーバを提供する。
図４は本発明の実施形態によるサーバのブロック図である。
図４に示されているように、サーバは第１の獲得モジュール１０、第１の前処理モジュール２０、第１のクラスタリングモジュール３０、第２の獲得モジュール４０、第２の前処理モジュール５０及び第２のクラスタリングモジュール６０を含む。
【００４８】
第１の獲得モジュール１０は、各々がユーザ識別情報、時間、及び地理的位置を含む位置データレコードを複数有する地理的位置のデータセットを生成するように、予め設定した時間帯（長くても短くてもよい、例えば一ヶ月）にユーザが使用した携帯端末の位置データを獲得するように構成されている。本発明の一実施形態では、位置データは緯度及び経度（「ｌａｔ，ｌｎｇ」）であり、収集された位置のデータセットをＭｙＳＱＬデータベースに格納される。データレコードの形式は上記表２に示される。
【００４９】
第１の前処理モジュール２０は地理的位置のデータセットを前処理するように構成されている。本発明の一実施形態では、第１の前処理モジュールは、地理的位置のデータセットから一つの未処理ユーザ（ユーザ識別情報）を獲得するステップ２１と、地理的位置のデータセットから当該未処理ユーザのすべての位置データレコードを獲得するステップ２２と、すべての位置データレコードの数が予め定められた第２の閾値（実際の状況に応じて設定し、本実施形態では１０件である）より小さいか又は予め定められた第３の閾値（実際の状況に応じて設定し、本実施形態では１０００件である）より大きいかを判断するステップ２３と、予め定められた第２の閾値より小さい又は予め定められた第３の閾値より大きい場合、地理的位置のデータセットから当該未処理ユーザに対応するすべての位置データレコードを削除するステップ２４と、地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ２１に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、前処理を終了するステップ２５とを更に実行する。方法実施形態及びそれに対応する図２を参照しながら理解されたい。
【００５０】
第１のクラスタリングモジュール３０は地理的位置のデータセットに基づいてユーザの各々の毎日の第１の時間帯（夜）における位置データレコードを獲得するとともに、第１の時間帯における位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心をユーザが第１の時間帯における第１の候補位置とし、並びに地理的位置のデータセットに基づいてユーザの各々の毎平日の第２の時間帯（昼）における位置データレコードを獲得するとともに、第２の時間帯における位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心をユーザが第２の時間帯における第２の候補位置とするように構成されている。本発明の一実施形態では、当該ユーザの第１の候補位置と第２の候補位置をＭｙＳＱＬデータベースに格納されている。第１の候補位置と第２の候補位置の格納形式は上記表３に示される。
【００５１】
本発明の一実施形態では、第１のクラスタリングモジュール３０は、地理的位置のデータセットから一つの未処理ユーザを獲得するステップ３１と、地理的位置のデータセットから当該未処理ユーザの毎日の第１の時間帯（本実施形態では毎日夜８時〜朝７時である）における位置データレコードを獲得し、２つごとに位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、地理的位置の距離に基づいて位置データにおける地理的位置をクラスタリングするとともに、一連の集合における一つ又は複数の集合の重心を未処理ユーザの第１の候補位置とするステップ３２と、地理的位置のデータセットから未処理ユーザの毎日の第２の時間帯（本実施形態では月曜日〜金曜日の午前９時〜午後６時である）における位置データレコードを獲得し、２つごとに位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、地理的位置の距離に基づいて位置データにおける地理的位置をクラスタリングするとともに、一連の集合における一つ又は複数の前記集合の重心を未処理ユーザの前記第２の候補位置とするステップ３３と、地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ３１に戻って継続し、地理的位置のデータセットの中に未処理ユーザがない場合、クラスタリングを終了するステップ３４とを更に実行する。方法実施形態及びそれに対応する図３を参照しながら理解されたい。
【００５２】
本発明の別の実施形態では、第１のクラスタリングモジュール３０は、２つごとに位置データレコード間の地理的位置の距離を獲得するように、２つの位置データレコードにおける地理的位置が緯度及び経度でない場合、地理的位置をそれぞれ緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」に変換するとともに、緯度及び経度「ｌａｔ１，ｌｎｇ１」と「ｌａｔ２，ｌｎｇ２」をそれぞれ弧度「α１，β１」と「α２，β２」に変換するステップと、Ｓ＝ａｒｃｃｏｓ（ｓｉｎ（α１）＊ｓｉｎ（α２）＋ｃｏｓ（α１）＊ｃｏｓ（α２）＊ｃｏｓ（β１−β２））＊Ｒという公式に基づいて前記地理的位置の距離Ｓを獲得するステップとを更に実行し、その中におけるａｒｃｃｏｓ、ｓｉｎ、ｃｏｓはそれぞれ逆余弦、正弦、余弦記号であり、Ｒは地球赤道の半径（デフォルト値６３７８１３７．０メートル）である
【００５３】
本発明の別の実施形態では、第１のクラスタリングモジュール３０は、地理的位置の距離に基づいて位置データにおける地理的位置をクラスタリングするように、位置データの各々における前記地理的位置を一つの緯度及び経度を含む集合｛「ｌａｔｉ，ｌｎｇｉ」｝（ｉが１以上の正整数である）に変換するステップ３２１と、２つの集合から任意に１つずつ緯度及び経度を獲得した場合の最大距離と定義される２つごとに集合間の距離を獲得するステップ３２２と、距離が一番近い集合を２つ獲得し、距離が予め定められた第４の閾値（本実施形態では２００メートルである）より小さい場合、２つの集合を、元の２つの集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ３２２に戻って引き続き実行し、予め定められた第４の閾値より大きい又は予め定められた第４の閾値と同じである場合、クラスタリングを終了するステップ３２３とを更に実行する。
【００５４】
本発明の別の実施形態では、第１のクラスタリングモジュール３０は、集合の重心を得られるように、仮に一つの集合が｛［ｌａｔ１，ｌｎｇ１］［ｌａｔ２，ｌｎｇ２］．．．，［ｌａｔｎ，ｌｎｇｎ］｝であれば、集合の重心を［（ｌａｔ１＋ｌａｔ２＋．．．＋ｌａｔｎ）／ｎ，（ｌｎｇ１＋ｌｎｇ２＋．．．＋ｌｎｇｎ）／ｎ］（ｎは正整数である）とするステップを更に実行する。
【００５５】
第２の獲得モジュール４０は、各々がユーザ識別情報、時間、及びＩＰアドレスを含むＩＰアドレスのデータレコードを複数有するＩＰアドレスのデータセットを生成するように、予め設定した時間帯（長くても短くてもよい、例えば一ヶ月）にユーザが使用した固定端末に対応するＩＰアドレスデータを獲得するように構成されている。獲得されたデータをＭｙＳＱＬデータベースに格納する。本実施形態におけるデータレコードの形式は上記表４に示されている。
【００５６】
第２の前処理モジュール５０は、ＩＰアドレスのデータセットを前処理するように構成されている。ＩＰアドレスデータレコードの各々におけるＩＰアドレスをそれぞれＩＰセグメントに変換し、ユーザが使用するＩＰセグメントに対応するＩＰアドレスデータレコードの数が予め定められた第１の閾値（例えば１０より小さい）より小さい場合、ＩＰアドレスのデータセットからＩＰセグメントに対応するＩＰアドレスのデータレコードを削除する。
【００５７】
本発明の一実施形態では、第２の前処理モジュール５０は、ＩＰアドレスデータレコードの各々におけるＩＰアドレスをそれぞれＩＰセグメントに変換するように、変換されたＩＰアドレスに対応したＩＰセグメントに保持する必要なＩＰアドレスの長さＭビットを獲得するステップと、ＩＰアドレスに対応したＩＰセグメントを得られるように、ＩＰアドレスにおける上位Ｍビットの数値を変えず、下位３２−Ｍビットの数値を０に設定するステップとを更に実行する。Ｍは８以上３２以下の整数であり、本実施形態では２４とする。
本実施形態では、上位２４ビットを変えず、下位８ビットを０に設定して、１６６．１１１．１２０．１３に対応したＩＰセグメント１６６．１１１．１２０．０を獲得する。ＩＰセグメントに変換されたＩＰアドレスの格納形式は上記表５を参照しながら理解されたい。
【００５８】
第２のクラスタリングモジュール６０は、前処理されたＩＰアドレスのデータセットにおけるＩＰセグメントに基づき、ＩＰセグメントを使用するすべてのユーザを獲得し、すべてのユーザに対応する第１の候補位置と第２の候補位置をＩＰセグメントの候補地理的位置として獲得するとともに、一連の集合を得られるように候補地理的位置をクラスタリングし、一連の集合から候補地理的位置を最も多く含む集合を獲得し、集合に対応する重心をＩＰセグメントに対応する地理的位置とするように構成されている。
【００５９】
本発明の一実施形態では、第２のクラスタリングモジュール６０は、前処理された前記ＩＰアドレスのデータセットから一つの未処理ＩＰセグメントを獲得するステップ６１と、アドレスのデータセットから当該未処理ＩＰセグメントを使用したすべてのユーザを獲得するとともに、すべてのユーザの第１の候補位置と第２の候補位置（ステップ３の結果に基づいて獲得する）をＩＰセグメントの候補地理的位置として獲得し、２つごとに候補地理的位置間の距離を獲得し、一連の集合を得られるように距離に基づいてクラスタリングするステップ６２と、ＩＰセグメントの地理的位置として一つの集合の重心を選択するステップ６３とを更に実行する。
【００６０】
本発明の別の実施形態では、第２のクラスタリングモジュール６０は、距離に基づいてクラスタリングするように、候補地理的位置の各々に対応する緯度及び経度「ｌａｔｉ，ｌｎｇｉ」を一つの緯度及び経度を含む集合｛［ｌａｔｉ，ｌｎｇｉ］｝（ｉは１以上の正整数である）に変換するステップ６２１と、２つの集合ごとに、２つの集合から任意に１つずつ緯度及び経度を獲得した場合の最短距離と定義される集合間の距離を獲得するステップ６２２と、距離が一番近い集合を２つ獲得し、距離が予め定められた第５の閾値（本実施形態では５００メートルである）より小さい場合、２つの集合を、元の２つの集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ６２２に戻って引き続き実行し、予め定められた第５の閾値（本実施形態では５００メートルである）より大きい又は予め定められた第５の閾値と同じである場合、クラスタリングを終了するステップ６２３とを更に実行する。
【００６１】
本発明の一実施形態では、第２のクラスタリングモジュール６０は、ＩＰセグメントの地理的位置として一つの集合の重心を選択するように、すべての集合を候補地理的位置を含む数の多い順に整列し、それぞれＣ１，Ｃ２，…Ｃｉ…，Ｃｎ（ｎは集合の数である）とするステップ６３１と、Ｃ１に含まれる候補地理的位置の数がＣ２より大きい場合、Ｃ１を選択してステップ６３４に移行し、そうでない場合ステップ６３３に移行するステップ６３２と、Ｃ１に含まれる候補地理的位置の数がＣｉと同じである場合、Ｃ１，…Ｃｉの中から一番多いユーザの数を有する集合を選択して、ステップ６３４に移行し、一番多いユーザの数を有する集合が複数ある場合、集合からランダムに一つを選択してステップ６３４に移行するステップ６３３と、選択された集合の重心をＩＰセグメントの地理的位置として獲得するステップ６３４とを更に実行する。
【００６２】
本発明の実施形態に係るサーバは少なくとも下記特徴及び有益な効果がある。ユーザが使用する携帯端末（例えばＧＰＳ機能付き携帯電話）が生じた位置データを利用して当該ユーザが使用した固定端末（例えば家庭用パソコン、オフィスパソコン）、サーバなど及びそれらに使われたＩＰアドレスに対応する地理的位置を間接に推定する。
携帯端末が提供した高精度の地理的位置データを間接に利用したため、当該サーバは街レベルのＩＰアドレス測位精度が実現され、同時に設置が簡単で応答時間が速い等の利点もある。
【００６３】
上記目的を実現するため、本発明はコンピュータ読み取り可能な記憶媒体を提供する。コンピュータ読み取り可能な記憶媒体は、コンピュータが本発明の第１の実施形態による前記携帯端末の位置データを利用してＩＰ地理的位置を特定する方法を実行させるためのコンピュータプログラムを記憶するように構成されている。
【００６４】
フローチャートにおいて又はここで他の方式で説明された論理又はステップは、一つ又は複数の論理機能又はステップを実現するための実行可能な命令の符号のモジュール、断片又は部分であり、本発明の好ましい実施形態は他の形態も含み、例示された又は議論された順序（関与された機能とほぼ同じ方式又は逆の順序を含む）によらず実行できることは、当業者であれば理解すべきである。
【００６５】
フローチャートにおいて又はここで他の方式で説明されたロジック及び／又はステップは、例えば、論理機能を実現するための実行可能な命令の順序リストであると考えられることができ、具体的に任意のコンピュータ可読媒体においても実現することができ、命令実行システム、装置、又はデバイス（例えば、コンピュータに基づいたシステムであり、プロセッサのシステム又は他の命令実行システム、装置、又はデバイスから命令を取得して実行するシステムを含む）により使用されるためのものであり、又はこれらの命令実行システム、装置、又はデバイスと組合せて使用するためのものである。本明細書では、「コンピュータ可読媒体」は、命令実行システム、装置、又はデバイスにより使用されるために、又はこれらの命令実行システム、装置、又はデバイスと組合せて使用するために、プログラムを含有、格納、通信、転送又は伝送できるいずれかの装置であってもよい。コンピュータ可読媒体のより具体的な例示（不完全なリスト）は、一つ又は複数の配線を有する電気的接続部（電子装置）、ポータブルコンピュータディスケットカートリッジ（磁気装置）、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去再書き込み可能な読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバーデバイス、及びポータブルコンパクトディスク読み取り専用メモリ（ＣＤＲＯＭ）を含む。また、コンピュータ可読媒体はさらに、その上に上記プログラムを印刷できる紙又は別の適切な媒体であってもよい。それは、例えば、紙又は他の媒体に光学走査を行ってから、編集、解釈又は必要に応じて他の適当な方法によって処理して、電子的に上記プログラムを取得し、次いで、それをコンピュータメモリに格納することができるためである。
【００６６】
本発明の各部分は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせで実現することができる。上記実施形態において、複数のステップ又は方法は、メモリに格納され且つ適切な命令実行システムにより実行されるソフトウェア又はファームウェアで実現することができる。例えば、ハードウェアで実現する場合、他の実施形態と同様に、当該技術分野で公知の以下の技術におけるいずれか１つ又はそれらの組み合わせで実現することができる。データ信号に論理機能を実現するための論理ゲート回路を有するディスクリート論理回路、適切な組み合わせ論理ゲート回路を有する専用集積回路、プログラマブルゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などである。
【００６７】
上述の実施形態を実現する方法が係る全部又は部分のステップはプログラムによって関連するハードウェアに命令を実行して完了でき、前記プログラムはコンピュータ読み取り可能な記憶媒体に記憶され、プログラムを実行するとき、実施形態のステップの一つ又はその組合せを含むことを本技術分野の一般の技術者は理解すべきである。
【００６８】
また、本発明の実施形態に係る各機能ユニットは一つの処理モジュールに統合されてもよいし、各ユニットの物理的存在であってもよいし、ソフトウェアによるモジュールを利用してもよい。前記統合されたモジュールはハードウェアを利用してもできるし、ソフトウェアを利用してもできる。前記統合されたモジュールはソフトウェアを利用して独立するプロダクトとして販売又は利用されるとき、コンピュータ読み取り可能な記憶媒体に記憶されてもよい。
【００６９】
前記記憶媒体はＲＯＭ、ディスク又はＣＤ等である。
【００７０】
本明細書の説明において、用語の「一実施形態」、「ある実施形態」、「例示」、「具体的な例示」、又は「ある例示」等の言葉とは、当該実施形態又は例示と合わせて説明された具体的な特徴、構成、材料又は特性が本発明の少なくとも一実施形態又は例示に含まれることを意味する。本明細書において、上記の用語の概略表現は必ずしも同じ実施形態又は例示を指さず、且つ、任意の一つ又は幾つの実施形態や例示において、説明された具体的な特徴、構成、材料又は特性を適当な方法で組み合わせることもできる。
【００７１】
以上、本発明の実施形態を示して説明したが、本発明の原理と要旨から逸脱しない範囲で、これらの実施形態に対し様々な変更、修正、置換及び変形をすることができることは、当業者にとって理解できる。本発明の技術範囲は、特許請求の範囲及びその均等構成を基準にする。
【図１】
0006042997.tif 000007
【図２】
0006042997.tif 000008
【図３】
0006042997.tif 000009
【図４】
0006042997.tif 000010