(57)【特許請求の範囲】
【請求項１】
端末によってネットワークにアクセスするために用いられるネットワーク機器の媒体アクセス制御（ＭＡＣ）アドレスを取得することと、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示すデータベースが前記取得されたＭＡＣアドレスを含むか否かを判断することと、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含む場合に、前記端末の現在のロケーションが前記データベースに記憶されている前記取得されたＭＡＣアドレスに関連付けられたロケーションに対応すると判断することと、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含まない場合、前記端末のインターネットプロトコル（ＩＰ）アドレスを取得することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示すデータベースが前記端末の前記ＩＰアドレスに関するロケーションを含むか否かを判断することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記端末の前記ＩＰアドレスに関するロケーションを含む場合、前記端末の前記現在のロケーションが、前記データベースに記憶されている前記端末の前記ＩＰアドレスに関する前記ロケーションに対応すると判断することと、
前記端末の前記現在のロケーションを出力することと、
を含む、方法。
【請求項２】
請求項１に記載の方法であって、前記ネットワーク機器は、無線信号を用いて前記端末と通信する無線信号トランシーバ機器である、方法。
【請求項３】
請求項１に記載の方法であって、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースを構成することであって、それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースを前記構成することは、
ＭＡＣアドレスおよび対応するロケーション情報を収集することであって、前記ロケーション情報は、デバイスが特定のＭＡＣアドレスに対応するネットワーク機器を用いて１つまたは複数のネットワークに接続する間の前記デバイスの緯度および経度を含むことと、
前記収集されたＭＡＣアドレスおよび対応するロケーション情報を用いて、各ＭＡＣアドレスに対応する緯度および経度を決定し、それぞれのＭＡＣアドレスに関連付けられたロケーションのマッピングを生成することと、
を更に含む、方法。
【請求項４】
請求項３に記載の方法であって、前記収集されたＭＡＣアドレスおよび対応するロケーション情報を用いて、前記ＭＡＣアドレスに対応する前記緯度および前記経度を決定し、それぞれのＭＡＣアドレスに関連付けられたロケーションの前記マッピングを生成することは、
収集されたＭＡＣアドレスに対応する前記ロケーション情報を処理して、前記収集されたＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データを得ることと、
各ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データを用いて、前記特定のＭＡＣアドレスに対応する緯度および経度を決定することと、
を含む、方法。
【請求項５】
請求項４に記載の方法であって、
複数のＭＡＣアドレス緯度および経度データが得られ、
前記ＭＡＣアドレスに対応する前記１つまたは複数のＭＡＣアドレス緯度および経度データを用いて、前記ＭＡＣアドレスに対応する前記緯度および経度を決定することは、
各ＭＡＣアドレスに対応する前記複数のＭＡＣアドレス緯度および経度データの中の任意の２つのＭＡＣアドレス緯度および経度データにそれぞれ対応するロケーション間の距離が閾値距離を超えているか否かを判断することと、
各ＭＡＣアドレスに対応する前記複数のＭＡＣアドレス緯度および経度データの中の任意の２つのＭＡＣアドレス緯度および経度データにそれぞれ対応する前記ロケーション間の前記距離がいずれも前記閾値距離を超えていない場合、前記ＭＡＣアドレスに対応する前記緯度および前記経度が、前記複数のＭＡＣアドレス緯度および経度データの前記緯度および前記経度の平均に対応すると判断することと、
を含む、方法。
【請求項６】
請求項５に記載の方法であって、
前記複数のＭＡＣアドレス緯度および経度データの中の任意の２つのＭＡＣアドレス緯度および経度データにそれぞれ対応する前記ロケーション間の距離が前記閾値距離を超えている場合、前記ＭＡＣアドレスに対応する前記緯度および前記経度が、前記複数のＭＡＣアドレス緯度および経度データの中の最大発生日数を有する所定の量のＭＡＣアドレス緯度および経度データに関連付けられた緯度および経度に対応すると判断することを更に含む、方法。
【請求項７】
請求項４に記載の方法であって、
前記データベースに記憶された各ＭＡＣアドレスに対応する各緯度および経度の信頼レベルを決定することを更に含む、方法。
【請求項８】
請求項１に記載の方法であって、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースを構成することを更に含み、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースを構成することは、
ＩＰアドレスおよび前記ＩＰアドレスにそれぞれ対応するロケーション情報を収集することであって、前記収集されたＩＰアドレスのＩＰアドレスに対応する前記ロケーション情報は、それぞれのＩＰアドレスを介してインターネットにアクセスした場所の地理的座標を含むことと、
前記ロケーション情報に少なくとも部分的に基づいて、前記ＩＰアドレスにそれぞれ対応する緯度および経度を決定することと、
前記ＩＰアドレスに対応する前記決定された緯度および経度と、以前に取得されたＩＰアドレスベースのデータベースとのうちの一方に少なくとも部分的に基づいて、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースを構成することと、
を含む、方法。
【請求項９】
請求項８に記載の方法であって、前記ロケーション情報に少なくとも部分的に基づいて、前記ＩＰアドレスに対応する前記緯度および前記経度を前記決定することは、
収集されたＩＰアドレスおよびＩＰアドレスロケーション情報を処理して、前記収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス地理的座標データを得ることと、
前記収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス地理的座標データを用いて、前記ＩＰアドレスに対応する前記緯度および前記経度を決定することと、
を含む、方法。
【請求項１０】
請求項９に記載の方法であって、前記収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス地理的座標データを前記用いて、前記ＩＰアドレスに対応する前記緯度および前記経度を決定することは、
前記ＩＰアドレスについて、前記ＩＰアドレスに対応するＩＰアドレス地理的座標データの各々の重みを決定することと、
前記ＩＰアドレスに関連付けられた地理的座標が、前記ＩＰアドレスに対応する前記１つまたは複数のＩＰアドレス地理的座標データの中の、最も大きな重みを有する前記ＩＰアドレス地理的座標データ内の地理的座標に対応すると判断することと、
を含む、方法。
【請求項１１】
請求項１０に記載の方法であって、前記ＩＰアドレスについて、前記ＩＰアドレスに対応するＩＰアドレス地理的座標データの各々の前記重みを前記決定することは、
前記ＩＰアドレスに対応するＩＰアドレス地理的座標データの各々に対応するロケーションの閾値範囲内で発生する１つまたは複数のＩＰアドレス地理的座標データを取得することと、
閾値期間内で前記ＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の発生日数、および対応するロケーションの閾値範囲内で発生する１つまたは複数のＩＰアドレス緯度および経度データの発生日数に従って、前記ＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の重みを決定することと、
を含む、方法。
【請求項１２】
請求項８に記載の方法であって、
所定の間隔において、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースを更新することであって、前記データベースを前記更新することは、
当日発生したＩＰアドレス、および各収集されたＩＰアドレスのロケーション情報を収集することと、
現時点に最も近い発生時点を有する各収集されたＩＰアドレスのロケーションに関連付けられた緯度および経度を、特定のＩＰアドレスに現在対応している緯度および経度に対応すると判断することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記特定のＩＰアドレスを含むか否かを判断することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記特定のＩＰアドレスを含まない場合、前記特定のＩＰアドレスならびに対応する緯度および経度を、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースに追加することと、
を更に含む、方法。
【請求項１３】
請求項１２に記載の方法であって、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記特定のＩＰアドレスを含む場合、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベース内の前記特定のＩＰアドレスに対応するロケーションと、前記特定のＩＰアドレスに現在対応している前記緯度および前記経度との間の距離が閾値距離を超えているか否かを判断することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベース内の前記特定のＩＰアドレスに対応する前記ロケーションと、前記特定のＩＰアドレスに現在対応している前記緯度および前記経度との間の前記距離が前記閾値距離を超えている場合、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベース内の前記特定のＩＰアドレスに対応する緯度および経度を、前記特定のＩＰアドレスに現在対応している前記緯度および前記経度と置換することと、
を更に含む、方法。
【請求項１４】
デバイスであって、
少なくとも１つのプロセッサであって、
端末によってネットワークにアクセスするために用いられるネットワーク機器の媒体アクセス制御（ＭＡＣ）アドレスを取得し、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示すデータベースが前記取得されたＭＡＣアドレスを含むか否かを判断し、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含む場合、前記端末の現在のロケーションが、前記データベースに記憶された前記取得されたＭＡＣアドレスに関連付けられたロケーションに対応すると判断し、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが、前記取得されたＭＡＣアドレスを含まない場合、前記端末のインターネットプロトコル（ＩＰ）アドレスを取得し、
それぞれのＩＰアドレスに関連付けられたロケーションを示すデータベースが前記端末の前記ＩＰアドレスに関するロケーションを含むか否かを判断し、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記端末の前記ＩＰアドレスに関する前記ロケーションを含む場合、前記端末の前記現在のロケーションが、前記データベースに記憶されている前記端末の前記ＩＰアドレスに関する前記ロケーションに対応すると判断し、
前記端末の前記現在のロケーションを出力する
ように構成される、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合され、前記少なくとも１つのプロセッサに命令を提供するように構成される、メモリと、
を備える、デバイス。
【請求項１５】
請求項１４に記載のデバイスであって、前記ネットワーク機器は、無線信号を用いて前記端末と通信する無線信号トランシーバ機器である、デバイス。
【請求項１６】
コンピュータプログラムであって、
端末によってネットワークにアクセスするために用いられるネットワーク機器の媒体アクセス制御（ＭＡＣ）アドレスを取得する機能と、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示すデータベースが前記取得されたＭＡＣアドレスを含むか否かを判断する機能と、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含む場合に、前記端末の現在のロケーションが前記データベースに記憶されている前記取得されたＭＡＣアドレスに関連付けられたロケーションに対応すると判断する機能と、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含まない場合、前記端末のインターネットプロトコル（ＩＰ）アドレスを取得する機能と、
それぞれのＩＰアドレスに関連付けられたロケーションを示すデータベースが前記端末の前記ＩＰアドレスに関するロケーションを含むか否かを判断する機能と、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記端末の前記ＩＰアドレスに関する前記ロケーションを含む場合、前記端末の前記現在のロケーションが、前記データベースに記憶されている前記端末の前記ＩＰアドレスに関する前記ロケーションに対応すると判断する機能と、
前記端末の前記現在のロケーションを出力する機能と、
をコンピュータに実現させるコンピュータプログラム。
【請求項１７】
請求項１６に記載のコンピュータプログラムであって、前記ネットワーク機器は、無線信号を用いて前記端末と通信する無線信号トランシーバ機器である、コンピュータプログラム。
【請求項１８】
請求項１６に記載のコンピュータプログラムであって、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースを構成する機能を更に前記コンピュータに実現させ、それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースを前記構成する機能は、
ＭＡＣアドレスおよび対応するロケーション情報を収集する機能であって、前記ロケーション情報は、デバイスが特定のＭＡＣアドレスに対応するネットワーク機器を用いて１つまたは複数のネットワークに接続する間の前記デバイスの緯度および経度を含む、機能と、
前記収集されたＭＡＣアドレスおよび対応するロケーション情報を用いて、各ＭＡＣアドレスに対応する緯度および経度を決定し、それぞれのＭＡＣアドレスに関連付けられたロケーションのマッピングを生成する機能と、
含む、コンピュータプログラム。
【請求項１９】
方法であって、
それぞれの媒体アクセス制御（ＭＡＣ）アドレスに関連付けられたロケーションを示すデータベースを構成することであって、それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースを前記構成することは、
ＭＡＣアドレスおよび対応するロケーション情報を収集することであって、前記ロケーション情報は、デバイスが特定のＭＡＣアドレスに対応するネットワーク機器を用いて１つまたは複数のネットワークに接続する間の前記デバイスの緯度および経度を含むことと、
前記収集されたＭＡＣアドレスおよび対応するロケーション情報を用いて、各ＭＡＣアドレスに対応する緯度および経度を決定し、それぞれのＭＡＣアドレスに関連付けられたロケーションのマッピングを生成することと、を含み、前記収集されたＭＡＣアドレスおよび対応するロケーション情報を用いて、各ＭＡＣアドレスに対応する緯度および経度を決定し、それぞれのＭＡＣアドレスに関連付けられたロケーションのマッピングを生成することは、
収集されたＭＡＣアドレスに対応する前記ロケーション情報を処理して、前記収集されたＭＡＣアドレスに対応する複数のＭＡＣアドレス緯度および経度データを得ることと、
各ＭＡＣアドレスに対応する前記複数のＭＡＣアドレス緯度および経度データを用いて、前記特定のＭＡＣアドレスに対応する緯度および経度を決定することと、を含み、各ＭＡＣアドレスに対応する前記複数のＭＡＣアドレス緯度および経度データを用いて、前記特定のＭＡＣアドレスに対応する緯度および経度を決定することは、
前記複数のＭＡＣアドレス緯度および経度データの中の任意の２つのＭＡＣアドレス緯度および経度データにそれぞれ対応するロケーション間の距離が閾値距離を超えているか否かを判断することと、
各ＭＡＣアドレスに対応する前記複数のＭＡＣアドレス緯度および経度データの中の任意の２つのＭＡＣアドレス緯度および経度データにそれぞれ対応する前記ロケーション間の前記距離がいずれも前記閾値距離を超えていない場合、前記ＭＡＣアドレスに対応する前記緯度および前記経度が、前記複数のＭＡＣアドレス緯度および経度データの前記緯度および前記経度の平均に対応すると判断することと、を含むことと、
端末によってネットワークにアクセスするために用いられるネットワーク機器のＭＡＣアドレスを取得することと、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含むか否かを判断することと、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含む場合に、前記端末の現在のロケーションが前記データベースに記憶されている前記取得されたＭＡＣアドレスに関連付けられたロケーションに対応すると判断することと、
前記端末の前記現在のロケーションを出力することと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
他の出願の相互参照
本出願は、参照によりあらゆる目的で本明細書に援用される、２０１４年５月１２日に出願された、「Ａ  ＭＥＴＨＯＤ  ＡＮＤ  Ａ  ＤＥＶＩＣＥ  ＦＯＲ  ＤＥＴＥＲＭＩＮＩＮＧ  ＴＨＥ  ＬＯＣＡＴＩＯＮ  ＯＦ  Ａ  ＴＥＲＭＩＮＡＬ」と題する中国特許出願第２０１４１０１９９３５０．５号の優先権を主張する。
【０００２】
本出願は、インターネット技術の分野に関する。特に、本出願は、端末のロケーションを決定するための方法、デバイスおよびシステムに関する。
【背景技術】
【０００３】
現在のところ、多くの端末（例えば、デスクトップコンピュータ、ノートブックコンピュータ等）は、通常、内部に備えられた、または他の形で接続されたグローバルポジショニングシステム（ＧＰＳ）測位モジュールを有していない。したがって、測位機能（例えば、ＧＰＳモジュール）がないそのような端末のロケーション情報を決定することは困難である。
【０００４】
いくつかの関連分野によれば、端末に関連して提供されるいくつかのアプリケーションは、端末のロケーション情報の使用を含む。結果として、そのようなアプリケーションは、ユーザの地理的ロケーション情報（例えば、端末のロケーション）を取得することを含む。ロケーション情報を用いるアプリケーションの例は、プロモーション情報の表示を含む。ユーザのロケーション情報を取得することができる場合、ユーザの周囲のエリアに関連付けられたプロモーション情報を、アプリケーションに関連付けて（例えば、ユーザによってブラウズされるウェブサイト上に）表示することができる。プロモーション情報は、ユーザのロケーションの近くの映画館、レストラン、市場等に関する情報を含むことができる。アプリケーションは、ユーザのロケーションに従って構成することができるプロモーション情報を表示するので、そのような端末を有するオンラインユーザのロケーション情報における精度が高いと、結果として、プロモーション情報の表示の精度が上がり、そのような端末におけるユーザエクスペリエンスを改善することができる。
【０００５】
別の例として、多くのユーザがＰＣ端末およびモバイル端末を同時に用いる。例えば、ＷｅｉｂｏおよびＷｅｉｘｉｎ等のアプリケーションは、クライアントバージョンおよびＰＣ端末ウェブページバージョンを有する。ユーザがＰＣ端末を用いてアプリケーションにアクセスするときのロケーション情報、およびユーザが携帯電話端末を用いてアプリケーションにアクセスするときのロケーション情報の収集を、ＰＣ端末のロケーション情報と携帯電話端末のロケーション情報との比較（例えば、２つの地理的ロケーション間の距離）に基づいて、ユーザアカウントが不正アクセスの危機にあるか否かを判断すること等のセキュリティ目的で用いることができる。
【０００６】
ある関連技術分野によれば、端末のロケーションは、事業者によって提供されるＩＰバンク（例えば、ＩＰアドレスデータベース）からの情報を用いて決定することができる。例えば、ＩＰバンクは、地理的ロケーションを特定のＩＰアドレス（またはＩＰアドレスの範囲）にマッピングする商業的に利用可能なデータベースである。そのような端末のＩＰアドレスを用いて、ＩＰアドレスの地理的ロケーション情報が問い合わせ（例えば、ルックアップ）される。一方、事業者によって提供されるＩＰバンクは、ＩＰアドレスに対応する広い地理的ロケーションを提供するのみである（例えば、ＩＰバンクによって提供される地理的ロケーションは、通常、都市を、ＩＰアドレスに対応する地理的ロケーションとして特定するのみである）。したがって、ＩＰバンクによって提供される地理的ロケーション情報は精密でない。例えば、杭州、北京および他の大都市において、ＩＰバンクからの情報を用いて端末の精密な測位を提供することは通常不可能である。
【０００７】
したがって、端末のロケーションを決定するより良好な方法が必要とされている。
【図面の簡単な説明】
【０００８】
本発明の様々な実施形態が、以下の詳細な説明および添付の図面に開示される。
【０００９】
ここで説明される図面は、本出願の理解を促進し、本出願の一部を形成するように意図される。本出願およびその明細書の例示的な実施形態は、本出願の説明を意図しており、本出願の不適切な制限をもたらすものではない。
【００１０】
【図１】本出願の様々な実施形態による、端末ロケーションを決定するための方法のフローチャートである。
【００１１】
【図２】本出願の様々な実施形態による、媒体アクセス制御（ＭＡＣ）アドレスに関連付けられたロケーションを示すデータベースを事前構成することのフローチャートである。
【００１２】
【図３】本出願の様々な実施形態による、各ＭＡＣアドレスに対応する緯度および経度を決定するための基礎として、収集されたＭＡＣアドレスおよび対応するロケーション情報を用いて、ＭＡＣアドレスに関連付けられたロケーションを示すレコードをデータベースにおいて生成することのフローチャートである。
【００１３】
【図４】本出願の様々な実施形態による、ＭＡＣアドレスに対応する緯度および経度を決定することのフローチャートである。
【００１４】
【図５】本出願の様々な実施形態による、インターネットプロトコル（ＩＰ）アドレスに関連付けられたロケーションを示すデータベースを事前構成することのフローチャートである。
【００１５】
【図６】本出願の様々な実施形態による、ＩＰアドレスに対応する緯度および経度を決定することのフローチャートである。
【００１６】
【図７】本出願の様々な実施形態による、ＩＰアドレスに対応する緯度および経度を決定することのフローチャートである。
【００１７】
【図８】本出願の様々な実施形態による、ＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の重みを決定するフローチャートである。
【００１８】
【図９】本出願の様々な実施形態による、ＩＰアドレスと関連付けられたロケーションを示すデータベースを所定の間隔で更新することのフローチャートである。
【００１９】
【図１０】本出願の様々な実施形態による、端末ロケーションを決定するためのデバイスの図である。
【００２０】
【図１１】本出願の様々な実施形態による、端末ロケーションを決定するためのシステムの構造ブロック図である。
【００２１】
【図１２】本出願の様々な実施形態による、端末のロケーションを決定するためのコンピュータシステムの機能図である。
【発明を実施するための形態】
【００２２】
本発明は、プロセス、装置、システム、物質組成、コンピュータ可読記憶媒体上に実現されるコンピュータプログラム製品、および／またはプロセッサに結合されたメモリ上に記憶され、かつ／もしくはこのメモリによって提供される命令を実行するように構成されるプロセッサ等のプロセッサとして実施されることを含む、多数の形で実施することができる。本明細書では、これらの実施態様、または本発明がとることができる任意の他の形態を、技法と呼ぶことができる。概して、開示されるプロセスのステップの順序は、本発明の範囲内で変更することができる。別段の定めがない限り、タスクを実行するように構成されているものとして説明されるプロセッサまたはメモリ等のコンポーネントは、所与の時点におけるタスクを実行するように一時的に構成された一般的なコンポーネント、またはそのタスクを実行するように製造された特殊なコンポーネントとして実施することができる。本明細書において用いられるとき、「プロセッサ」という用語は、コンピュータプログラム命令等のデータを処理するように構成された、１つまたは複数のデバイス、回路および／または処理コアを指す。
【００２３】
本発明の１つまたは複数の実施形態の詳細な説明は、以下で、本発明の原理を示す添付の図面と共に提供される。本発明は、そのような実施形態との関連で説明されるが、本発明はいかなる実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ制限され、本発明は、多数の代替形態、変更形態および均等物を包含する。以下の説明において、本発明の完全な理解を与えるために多数の特定の詳細が示される。これらの詳細は、例示の目的で提供され、本発明は、これらの特定の詳細のうちのいくつかまたは全てがなくても、特許請求の範囲に従って実施することができる。明確にするために、本発明に関連する技術分野において既知の技術的題材は、本発明を不要に不明確にしないように詳細に説明されていない。
【００２４】
本開示の様々な実施形態は、デバイス（例えば、端末）のロケーション（例えば、地理的ロケーション）を決定するための方法、装置およびシステムを含む。様々な実施形態によれば、１つまたは複数の媒体アクセス制御（ＭＡＣ）アドレスに関連付けられたロケーションを示すデータベースを構成することができる。様々な実施形態によれば、１つまたは複数のインターネットプロトコル（ＩＰ）アドレスに関連付けられたロケーションを示すデータベースを構成することができる。様々な実施形態によれば、端末がネットワーク（例えば、インターネット）に接続する場合、端末のロケーションは、端末のＭＡＣアドレスまたはＩＰアドレスに関連付けられたロケーションを示すデータベースを用いる（例えば、問い合わせる）ことによって決定することができる。
【００２５】
本出願の技術的解決策は、本出願の特定の実施形態および対応する図面に照らして以下で明確におよび完全に説明される。説明される実施形態は、本出願の実施形態のうちのいくつかにすぎず、全ての実施形態ではない。当業者によって本出願の実施形態に基づいて得られる全ての他の実施形態は、それらを得る過程で発明的努力が行われない限り、本出願の保護範囲内にあるものとする。
【００２６】
端末は通常、ネットワークシステム内で（例えば、ユーザによって）用いられ、１つまたは複数のサーバとの通信のために用いられるデバイスを指す。本開示の様々な実施形態によれば、端末は、通信機能を含むことができる。例えば、端末は、スマートフォン、タブレットパーソナルコンピュータ（ＰＣ）、モバイルフォン、ビデオフォン、電子書籍リーダ、デスクトップＰＣ、ラップトップＰＣ、ノートブックＰＣ、携帯情報端末（ＰＤＡ）、ポータブルマルチメディアプレーヤ（ＰＭＰ）、ｍｐ３プレーヤ、モバイル医療デバイス、カメラ、ウェアラブルデバイス（例えば、ヘッドマウントデバイス（ＨＭＤ）、電子衣服（ｅｌｅｃｔｒｏｎｉｃ  ｃｌｏｔｈｅｓ）、電子サポータ（ｅｌｅｃｔｒｏｎｉｃ  ｂｒａｃｅｓ）、電子ネックレス、電子アクセサリ、電子タトゥーまたはスマートウォッチ）等とすることができる。
【００２７】
本開示のいくつかの実施形態によれば、端末は、通信機能を有するスマート家電を含む。スマート家電は、例えば、テレビ、デジタルビデオディスク（ＤＶＤ）プレーヤ、オーディオデバイス、冷蔵庫、エアコンディショナ、掃除機、オーブン、電子レンジ、洗濯器、ドライヤ、空気清浄機、セットトップボックス、ＴＶボックス（例えば、Ｓａｍｓｕｎｇ（登録商標）  ＨｏｍｅＳｙｎｃ、Ａｐｐｌｅ（登録商標）  ＴＶまたはＧｏｏｇｌｅ（登録商標）  ＴＶ）、ゲームコンソール、電子辞書、電子鍵、カムコーダ、電子写真立て等とすることができる。
【００２８】
本開示の様々な実施形態によれば、端末は、上記のデバイスの任意の組み合わせとすることができる。更に、本開示の様々な実施形態による端末は上記のデバイスに限定されないことが当業者には明らかとなろう。
【００２９】
図１は、本出願の様々な実施形態による、端末ロケーションを決定するための方法のフローチャートである。
【００３０】
図１を参照すると、端末のロケーションを決定するための方法１００が提供される。いくつかの実施形態では、方法１００は、図１０のデバイス１０００によって実施される。いくつかの実施形態では、方法１００は図１１のシステム１１００によって実施される。
【００３１】
１１０において、端末のＭＡＣアドレスが取得される。いくつかの実施形態では、端末のＭＡＣアドレスは、端末がインターネット等のネットワークに接続する際に取得される。例えば、サーバ（例えば、ネットワークに接続され、ホスティングまたは他の機能を実行するように構成され、ウェブサイト、ウェブサービス等に関連付けられたデバイス）は、端末からメッセージを受信することができる。メッセージは、アクセス要求等とすることができる。メッセージは、端末のＭＡＣアドレスを含むことができる。メッセージは、ＧＥＴメッセージ、ＰＯＳＴメッセージ等のＨＴＴＰメッセージ、または任意の他の適切なフォーマットのメッセージとすることができる。いくつかの実施形態では、サーバは、端末から受信したメッセージのヘッダまたはペイロードからＭＡＣアドレスを抽出する。ＭＡＣアドレスは、端末に関連付けられた物理アドレスまたはハードウェアアドレスとすることができる。ＭＡＣアドレスは、グローバル一意とすることができる。
【００３２】
端末は、無線信号トランシーバ機器によって送信された無線ネットワーク信号を受信することによって、ネットワーク（例えば、インターネット）に接続することができる。無線信号トランシーバ機器は、無線信号トランシーバ機器の信号カバレッジ範囲内の機器に無線ネットワーク信号を提供するために、有線ネットワーク信号を無線ネットワーク信号に変換するように構成される機器に対応することができる。無線信号トランシーバ機器の信号カバレッジ範囲内の機器（例えば、端末）は、無線ネットワーク信号を受信することによって、インターネットに無線で接続することができる。無線ルータは、有線ネットワーク信号をＷｉＦｉ（登録商標）信号に変換する無線信号トランシーバ機器の例である。無線信号トランシーバ機器の信号カバレッジ範囲内の無線ネットワーク機器（例えば、ＷｉＦｉサポートノートブックコンピュータ、携帯電話およびタブレットコンピュータ）は、無線信号トランシーバ機器によって送信されるＷｉＦｉ信号を受信することによってインターネットにアクセスすることができる。
【００３３】
１２０において、データベースが端末のＭＡＣアドレスを含むか否かの判断が行われる。いくつかの実施形態では、サーバ（例えば、ＭＡＣアドレスを取得するサーバ）は、データベースがＭＡＣアドレスを含むか否かを判断する。データベースは、ＭＡＣアドレスに関連付けられたロケーション（例えば、地理的ロケーション）のマッピングを記憶するデータベースとすることができる。例えば、データベースは、特定のＭＡＣアドレスに関連付けられたロケーションのマッピングにそれぞれ関係する複数のレコードを記憶する。ロケーションは、経度および緯度に関連付けられた情報を含むことができる。例えば、ロケーションは、ロケーションに対応する経度座標および緯度座標を示す情報を含むことができる。
【００３４】
サーバは、データベースに問い合わせることによって、データベースがＭＡＣアドレスを含むか否かを判断することができる。例えば、サーバは、データベースがＭＡＣアドレスを含むか否かを、ＭＡＣアドレスに関連付けられたロケーション情報についてのデータベースのクエリに関連して受信された応答に少なくとも部分的に基づいて判断することができる。ＭＡＣアドレスに関連付けられたロケーション情報についてのデータベースのクエリに対する応答が無反応である場合（例えば、応答が、レコードが存在しないこと、またはロケーション情報が存在しないことを示す場合）、サーバは、データベースがＭＡＣアドレスを含まないと判断することができる。
【００３５】
いくつかの実施形態では、データベースは、商業的に利用可能なサービス（例えば、第三者によって提供される）とすることができる。データベースがＭＡＣアドレスを含まない場合（例えば、データベースがＭＡＣアドレスに関連付けられたロケーション情報を含むレコードを記憶していない場合）、データベースは、ＭＡＣアドレスに関連付けられた端末に対応するロケーション情報を含むように手動または自動で構成することができる。
【００３６】
いくつかの実施形態では、ＭＡＣアドレスに関連付けられたロケーション情報を用いて、ＭＡＣアドレスに対応する端末のロケーションを決定することができる。例えば、ロケーション情報を用いて、ＭＡＣアドレスに対応する端末の緯度および経度を決定することができる。
【００３７】
データベースがＭＡＣアドレス（例えば、ＭＡＣアドレスに関連付けられたロケーション情報）を含むと判断される場合、次に１３０において、端末のロケーションを返すことができる。いくつかの実施形態では、ロケーションはサーバに返すことができる。いくつかの実施形態では、サーバは、取得されたＭＡＣアドレスに関連付けられた情報についてのデータベースのクエリに応答してサーバに提供される情報に基づいて、ロケーションを決定することができる。サーバは、ＭＡＣアドレスに関連付けられたロケーション情報を用いて、コンテキストベースのコンテンツ（例えば、ニュース、天気、広告等、またはそれらの任意の組み合わせ）を、ＭＡＣアドレスに対応する端末に提供することができる。
【００３８】
対照的に、データベースがＭＡＣアドレスを含まない（例えば、データベースがＭＡＣアドレスに関連付けられたロケーション情報を記憶していない）と判断される場合、１４０において、端末のＩＰアドレスが取得される。いくつかの実施形態では、端末のＩＰアドレスは、端末がインターネットまたはプライベートネットワーク等のネットワークに接続する場合に取得される。例えば、サーバは、端末からメッセージを受信することができる。メッセージは、アクセス要求等とすることができる。メッセージは、ヘッダまたはペイロード内に端末のＩＰアドレスを含むことができる。メッセージは、ＧＥＴメッセージ、ＰＯＳＴメッセージ等のＨＴＴＰメッセージ、または任意の他の適切なフォーマットのメッセージとすることができる。いくつかの実施形態では、サーバは、端末から受信したメッセージのヘッダまたはペイロードからＩＰアドレスを抽出する。ＩＰアドレスは、グローバル一意とすることができる。
【００３９】
１５０において、データベースが端末のＩＰアドレスを含むか否かの判断が行われる。いくつかの実施形態では、サーバ（例えば、ＩＰアドレスを取得するサーバ）は、データベースがＩＰアドレスを含むか否かを判断する。データベースは、ＩＰアドレスに関連付けられたロケーション（例えば、地理的ロケーション）のマッピングを記憶するデータベースとすることができる。例えば、データベース（例えば、ＩＰアドレスに関連付けられたロケーションを示すデータベース）は、特定のＩＰアドレスに関連付けられたロケーションのマッピングにそれぞれ関係する複数のレコードを記憶する。ロケーションは、経度および緯度に関連付けられた情報を含むことができる。例えば、ロケーションは、ロケーションに対応する経度座標および緯度座標を示す情報を含むことができる。
【００４０】
サーバは、データベースに問い合わせることによって、データベースがＩＰアドレスを含むか否かを判断することができる。例えば、サーバは、データベースがＩＰアドレスを含むか否かを、ＩＰアドレスに関連付けられたロケーション情報についてのデータベースのクエリに関連して受信された応答に少なくとも部分的に基づいて判断することができる。ＩＰアドレスに関連付けられたロケーション情報についてのデータベースのクエリに対する応答が無反応である場合（例えば、応答が、レコードが存在しないこと、またはロケーション情報が存在しないことを示す場合）、サーバは、データベースがＩＰアドレスを含まないと判断することができる。
【００４１】
いくつかの実施形態では、データベースは、商業的に利用可能なサービス（例えば、第三者に提供される）とすることができる。データベースがＩＰアドレスを含まない場合（例えば、データベースがＩＰアドレスに関連付けられたロケーション情報を含むレコードを記憶していない場合）、データベースは、ＩＰアドレスに関連付けられた端末に対応するロケーション情報を含むように手動または自動で構成することができる。
【００４２】
いくつかの実施形態では、ＩＰアドレスに関連付けられたロケーション情報を用いて、ＩＰアドレスに対応する端末のロケーションを決定することができる。例えば、ロケーション情報を用いて、ＩＰアドレスに対応する端末の緯度および経度を決定することができる。
【００４３】
データベースがＩＰアドレス（例えば、ＩＰアドレスに関連付けられたロケーション情報）を含むと判断される場合、次に１６０において、端末のロケーションを返すことができる。いくつかの実施形態では、ロケーションはサーバに返すことができる。いくつかの実施形態では、サーバは、取得されたＩＰアドレスに関連付けられた情報についてのデータベースのクエリに応答してサーバに提供される情報に基づいて、ロケーションを決定することができる。サーバは、ＩＰアドレスに関連付けられたロケーション情報を用いて、コンテキストベースのコンテンツ（例えば、ニュース、天気、広告等、またはそれらの任意の組み合わせ）を、ＩＰアドレスに対応する端末に提供することができる。
【００４４】
図２は、本出願の様々な実施形態による、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースを事前構成することのフローチャートである。
【００４５】
図２を参照すると、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースを構成するための方法２００が提供される。いくつかの実施形態では、方法２００は、図１０のデバイス１０００によって実施される。いくつかの実施形態では、方法２００は図１１のシステム１１００によって実施される。
【００４６】
２１０において、デバイスのＭＡＣアドレスおよびデバイスのロケーション情報（例えば、ＭＡＣアドレスに対応するロケーション情報）が取得される。いくつかの実施形態では、サーバは、ＭＡＣアドレス、およびＭＡＣアドレスに対応するロケーション情報を取得（例えば、収集）する。サーバは、ネットワークアクセスイベントに関連してＭＡＣアドレスおよびＭＡＣアドレスのロケーション情報を取得することができる。例えば、ネットワークアクセスイベントは、端末がインターネットにアクセスすること、ウェブページをブラウズすること、ネットワークデバイスと通信すること等とすることができる。例として、ＭＡＣアドレスは、無線信号トランシーバ機器（例えば、無線ルータ、無線スイッチ等）のＭＡＣアドレスに対応することができ、このＭＡＣアドレスを通じて、端末が通信することができ、またこのＭＡＣアドレスは、特定のフィールド内のメッセージのヘッダまたはペイロードにアタッチすることができる。ロケーション情報は、緯度情報（例えば、緯度座標）および経度情報（例えば、経度座標）を含むことができ、パケットヘッダまたはペイロード内に含まれ得る。いくつかの実施形態では、無線信号（例えば、ＷｉＦｉ信号）を用いて無線信号トランシーバ機器を介してインターネットに接続する端末のロケーション情報を用いて、ＭＡＣアドレスのロケーションを決定することができる。
【００４７】
いくつかの実施形態では、モバイルデバイスが、無線信号トランシーバ機器によって送信される無線ネットワーク信号（ＷｉＦｉ信号等であるがこれに限定されない）を通じて（例えば、用いて）インターネットに接続する場合、無線ネットワーク信号を送信している無線信号トランシーバ機器のＭＡＣアドレスを取得することができる。例えば、モバイルデバイスがインターネットにアクセスする場合、モバイルデバイスは、パケットをネットワーキング機器に送信し、このネットワーキング機器は、そのＭＡＣアドレスをパケットヘッダまたはペイロードにアタッチし、パケットをその宛先に転送する。このため、モバイルデバイスがインターネットにアクセスするのに用いる無線信号トランシーバデバイス（例えば、ネットワーク機器）のＭＡＣアドレスは、パケットがその宛先サーバに到達するとき等に、無線信号トランシーバデバイスから下流でパケットヘッダまたはペイロードを解析することによって取得することができる。
【００４８】
いくつかの実施形態では、モバイルデバイスがインターネットにアクセスするために用いるネットワークデバイスのロケーションが事前構成される。例えば、ネットワークデバイスは、固定ロケーションを有する可能性が高いので、ロケーション情報は、ネットワークデバイスのインストール時に構成することができ（例えば、ネットワークデバイスにおいてＧＰＳ機能を起動することによって得られるか、または手動で入力される）、構成ファイル等に記憶することができる。ロケーション情報は、端末がネットワークデバイスを介してインターネットにアクセスするときに提供される（例えば、パケットヘッダまたはペイロードに含まれる）。
【００４９】
端末がグローバルポジショニングシステム（ＧＰＳ）測位機能を有する場合、端末が無線信号トランシーバ機器を用いてインターネットにアクセスするときに（例えば、端末がオンラインになるときに）、端末のロケーション情報（例えば、緯度情報および経度情報）を取得することができ、この情報は、無線トランシーバのＭＡＣアドレスに対応するロケーション情報としての役割を果たす。
【００５０】
いくつかの実施形態では、モバイル端末上にインストールされた様々なアプリケーション（例えば、クライアントアプリケーション）を用いて、ＭＡＣアドレス、およびＭＡＣアドレスに関連付けられたロケーション情報を取得することができる。例えば、モバイル端末上にインストールされるアプリケーションは、モバイル端末とネットワークデバイス（例えば、無線信号トランシーバ機器等のネットワーク機器）との間の通信に関連して大量のログ情報を収集することができる。ログ情報は、モバイル端末が、ネットワークデバイスのＭＡＣアドレス、およびそれに対応するロケーション情報を取得するように、ネットワークデバイスからの応答を受信するときに収集することができる。例えば、ヘッダ情報および／またはペイロード情報は、ネットワークデバイスによって、ＭＡＣアドレス、および／またはＭＡＣアドレスのロケーション情報を含むログ情報を生成するために送信される応答から抽出することができる。
【００５１】
いくつかの実施形態では、モバイル端末上の無線信号受信機（例えば、ＷｉＦｉ受信機）が、無線信号トランシーバ機器情報（例えば、ＭＡＣアドレス、ＩＰアドレス等、またはそれらの任意の組み合わせ）と、都市内の様々なロケーションから送信された無線ネットワーク信号（例えば、モバイルデバイスとネットワークデバイスとの間で通信される無線ネットワーク信号）のロケーション情報とを受信し記憶する。
【００５２】
いくつかの実施形態では、デバイス（例えば、モバイルデバイス、ネットワークデバイス等、またはそれらの組み合わせ）のＭＡＣアドレスおよび対応するロケーション情報を、現時点（例えば、ロケーションベースのサービスに関連してデータベースを用いて端末のロケーションが決定される時点）の前の所定の収集期間内で収集することができる。ＭＡＣアドレスおよび対応するロケーション情報は、現時点より前の所定の収集期間内で発生したネットワーク通信に関連して収集することができる。例えば、無線信号トランシーバ機器のＭＡＣアドレスは、端末がインターネット等のネットワークにアクセスしたときに収集することができる。端末が無線信号トランシーバ機器を介してインターネットにアクセスしたときの端末のロケーション情報が収集される。いくつかの実施形態では、端末は、端末がインターネットにアクセスするときに端末のロケーションを決定するように起動することができる測位機能（例えば、ＧＰＳ機能）を有する。端末は、端末がインターネットにアクセスするときに、ＭＡＣアドレスに関連付けられたロケーション情報を通信することができ、サーバへのパケットのヘッダまたはペイロードにＭＡＣアドレスをアタッチする。
【００５３】
無線信号トランシーバ機器によって送信される無線ネットワーク信号は、一定の有効カバレッジ範囲（例えば、通常、５０メートル以内）を有するので、無線信号トランシーバ機器の各々は、測位機能を実施する異なる端末からの１つまたは複数の緯度情報および経度情報を収集する。例えば、各々がそれぞれ測位機能を実施する複数の端末が、ネットワークデバイスを用いてインターネットにアクセスすることができる。複数の端末のうちの少なくとも２つが異なるロケーションを有する場合、ネットワークデバイスのＭＡＣアドレスに関連して用いられる（例えば、収集される）ロケーション情報は異なる。例えば、ネットワークデバイスに関連付けられたロケーション情報は、ネットワークデバイスを用いてインターネットにアクセスする端末のロケーションが異なることに起因して異なり得る。機器信号の有効カバレッジ範囲内の異なる位置において、異なる端末が機器によって送信される無線ネットワーク信号を用いてインターネットにアクセスする。別の例として、同じ端末が、無線信号トランシーバ機器によって送信される無線ネットワーク信号を用いて、異なる時点、および無線信号トランシーバ機器の信号の有効カバレッジ範囲内の異なる位置においてインターネットにアクセス（例えばネットワークデバイスと通信）し得る。したがって、いくつかの実施形態では、各ＭＡＣアドレスに対応するロケーション情報は、１つまたは複数の緯度情報および経度情報（例えば、レコード）を含む。１つまたは複数の緯度情報および経度情報の各々は、（ｉ）端末が、無線信号トランシーバ機器によって提供される無線ネットワーク信号を用いてインターネットにアクセスしたときの異なる端末のロケーションについての緯度情報および経度情報、または（ｉｉ）特定の端末が、無線信号トランシーバ機器によって提供される無線ネットワーク信号を用いてインターネットにアクセスした異なる時点における特定の端末のロケーションについての緯度情報および経度情報、に対応する。
【００５４】
２２０において、データベースは、ＭＡＣアドレスおよびロケーション情報を用いて更新される。いくつかの実施形態では、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースは、取得されたＭＡＣアドレスおよびロケーション情報を記憶するように構成される。例えば、データベースは、取得されたＭＡＣアドレスへの取得されたロケーション情報のマッピングを記憶するように構成することができる。サーバは、ＭＡＣアドレスおよびロケーション情報を用いてデータベースを構成することができる。パケットが受信される場合、パケットは、ＭＡＣアドレスおよび信号強度を含むことができる。モバイル端末のロケーションは、測位モジュールによって決定することができる。サーバは、ＭＡＣアドレス、およびＭＡＣアドレスに対応するロケーション情報等、またはそれらの任意の組み合わせの受信に応答して、所定の時点（例えば、所定の時間間隔）において、ＭＡＣアドレスおよびロケーション情報を用いてデータベースを構成するか、または他の形で更新することができる。
【００５５】
収集されたＭＡＣアドレスおよび対応するロケーション情報は、ＭＡＣアドレスおよびロケーションのデータベースに記憶されたＭＡＣアドレスと対応するロケーションとの間の関係を得るように、各ＭＡＣアドレスに対応する緯度および経度を決定するための基礎として用いることができる。
【００５６】
図３は、本開示の様々な実施形態による各ＭＡＣアドレスに対応する緯度および経度を決定するための基礎として、収集されたＭＡＣアドレスおよび対応するロケーション情報を用いて、ＭＡＣアドレスに関連付けられたロケーションを示すデータベース内のレコードを生成することのフローチャートである。
【００５７】
図３を参照すると、収集されたＭＡＣアドレスおよび対応するロケーション情報を用いてＭＡＣアドレスに関連付けられたロケーションを示すデータベース内のレコードを生成するための方法３００が提供される。いくつかの実施形態では、プロセス３００は、図１０のデバイス１０００によって実施される。いくつかの実施形態では、プロセス３００は、図１１のシステム１１００によって実施される。いくつかの実施形態において、図２の２２０は方法３００によって実施される。
【００５８】
いくつかの実施形態では、各収集されたＭＡＣアドレスおよび対応するロケーション情報を、各ＭＡＣアドレスに対応する緯度および経度を決定するための基礎として用いることは、３０５〜３２０を含む。
【００５９】
３０５において、ＭＡＣアドレスおよびその関連ロケーション情報が得られる。いくつかの実施形態では、ＭＡＣアドレスおよびロケーション情報は、サーバにおいて受信される特別にマーキングされたパケットのヘッダおよび／またはペイロード内の特定のフィールドから得られる。いくつかの実施形態では、デバイスがＷｉＦｉネットワークに接続される場合、モバイルデバイスは、モバイルデバイスのロケーションを決定する（例えば、測位する）ことができるマップアプリケーションを実行することができる。モバイルフォンは、ＷｉＦｉネットワークに関連付けられたＭＡＣアドレスを（例えば、ルータ等のＷｉＦｉネットワークとの通信中に受信されるパケットを用いて）取り出すことができる。マップアプリケーションは、ＭＡＣアドレスおよび対応するロケーション情報を、モバイルデバイス上のキャッシュに記憶することができる。いくつかの実施形態では、モバイルデバイスは、データベース（例えば、ローカルデータベース、サーバによってホスティングされるリモートデータベース等）を更新することができる。例えば、モバイルデバイスは、予め定義された時間間隔でデータベースを更新することができる。別の例として、モバイルデバイスは、予め定義されたイベント時（例えば、ネットワークまたはインターネットアクセスイベント等）にデータベースを更新することができる。
【００６０】
３１０において、ＭＡＣアドレスに関連付けられたロケーション情報が処理される。いくつかの実施形態では、サーバは、ＭＡＣアドレスに関連付けられたロケーション情報を処理する。いくつかの実施形態では、データベース（例えば、データベースに連動するプロセッサ）は、ＭＡＣアドレスに関連付けられたロケーション情報を処理する。各収集されたＭＡＣアドレスに対応するロケーション情報を処理して、各ＭＡＣアドレスに対応する１つまたは複数ＭＡＣアドレス緯度および経度データを得ることができる。
【００６１】
いくつかの実施形態では、ＭＡＣアドレス緯度および経度データの各々が、ＭＡＣアドレスと、ＭＡＣアドレスに対応する緯度および経度（例えば、緯度情報および経度情報）を含む。緯度情報および経度情報は、ＭＡＣアドレスに対応するネットワークデバイスを用いてネットワークにアクセスしたデバイスのロケーション（例えば、デバイスがインターネットに接続したときのそのデバイスのロケーション）の緯度および経度に対応する。各ＭＡＣアドレスに対応するロケーション情報は、１つまたは複数の緯度情報および経度情報を含むことができる。緯度情報および経度情報の各々は、端末が、無線信号トランシーバ機器によって提供される無線ネットワーク信号を用いてネットワークに接続したときの異なる端末のロケーションの緯度情報および経度情報、または、特定の端末が、無線信号トランシーバ機器によって提供された無線ネットワーク信号を用いてインターネットにアクセスした（例えば、オンラインになった）異なる時点における特定の端末のロケーションの緯度情報および経度情報に対応する。
【００６２】
各ＭＡＣアドレスのロケーション情報を処理することができる。各ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データを得ることができる。各ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データは、各ＭＡＣアドレスのロケーション情報の処理に基づいて得ることができる。例えば、ＭＡＣアドレスのロケーション情報における任意の緯度および経度情報が処理を経て、ＭＡＣアドレスに対応する１つのＭＡＣアドレス緯度および経度データが得られる。いくつかの実施形態では、特定のＭＡＣアドレスに対応する代表的ロケーションが、特定のＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データに少なくとも部分的に基づいて決定される。いくつかの実施形態では、特定のＭＡＣアドレスに対応する代表的ロケーションは、特定のＭＡＣにアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データの平均値に従って決定することができる。いくつかの実施形態では、特定のＭＡＣアドレスに対応する代表的ロケーションは、特定のＭＡＣにアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データの中央値に従って決定することができる。いくつかの実施形態では、特定のＭＡＣアドレスに対応する代表的ロケーションは、特定のＭＡＣにアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データの中の最も頻繁に発生するロケーションに従って決定することができる。いくつかの実施形態では、特定のＭＡＣアドレスに対応する代表的ロケーションは、最も近時に記録（例えば、収集）されたか、または、特定のＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データの中の最も近時のインターネットアクセスイベントに他の形で関係するロケーションに従って決定することができる。
【００６３】
いくつかの実施形態では、データ（例えば、ＭＡＣアドレス情報、およびＭＡＣアドレスに対応するロケーション情報）のフォーマットは、「［ｍａｃ，ｌａｔ，ｌｏｎｇ］」であり、ここで、「ｍａｃ」はＭＡＣアドレスを表し、「ｌａｔ」は緯度を表し、「ｌｏｎｇ」は経度を表す。ＭＡＣアドレスに関連付けられたロケーションを示すデータベースは、そのようなフォーマットに従ってレコードを記憶することができる。
【００６４】
いくつかの実施形態では、各ＭＡＣアドレス緯度および経度データは、特定のＭＡＣアドレス緯度および経度データが発生した日数を含む。特定のＭＡＣアドレス緯度および経度データが発生した日数は、ＭＡＣアドレス緯度および経度データが記録される（例えば、収集される）日数に対応することができる。ＭＡＣアドレス緯度および経度データの各々は、発生時点の信号強度（例えば、無線信号トランシーバ機器によって通信され、端末によって受信される信号の信号強度）を含むことができる。データフォーマットは、「［ｍａｃ，ｌａｔ，ｌｏｎｇ，ｓｉｇｎａｌ，ｌｏｇ＿ｄａｙｓ］」とすることができる。「ｓｉｇｎａｌ」は、信号強度を示し、「ｌｏｇ＿ｄａｙｓ」は、インターネットのアクセスが発生した日数を示す。そのようなフォーマットにおいて、ＭＡＣアドレス緯度および経度データが一日（例えば、現時点の前の事前に決定された収集時間中の任意の日）に発生する場合、ＭＡＣアドレス緯度および経度データは、１発生日を有するものとして記録される。いくつかの実施形態では、ＭＡＣアドレス緯度および経度データが特定の日に何回発生するかと無関係に、ＭＡＣアドレス緯度および経度は、１発生日を有するものとして記録される。例えば、３０日のデータが収集される場合において、ＭＡＣアドレス緯度および経度データが３日目に５回発生し、５日目に１回発生し、６日目に３回発生するとき、このＩＰアドレス緯度および経度について記録される発生日数は３日である。
【００６５】
いくつかの実施形態では、各ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データに関連付けられた発生日数を収集することができ、所定の閾値日数未満の発生日数を有するＭＡＣアドレス緯度および経度データを、各ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データからフィルタリングすることができる。例えば、あるＭＡＣアドレス緯度および経度データは１日のみ発生した。１日のみ発生したＭＡＣアドレス緯度および経度データは、閾値数５を下回っているため、異常データである可能性が高いとみなされ得る。したがって、そのようなデータは、削除または他の形でフィルタリング除去され得る。いくつかの実施形態では、閾値日数は、ユーザ、サーバ（例えば、端末へのコンテキストベースのコンテンツを提供するサーバ）等によって構成することができる。閾値日数は、統計的に関係する尺度に従って外れ値であるとみなされるデータを決定する１つまたは複数のＭＡＣアドレス緯度および経度データの統計解析に従って決定することができる。
【００６６】
３２０において、ＭＡＣアドレスに対応するロケーションを決定することができる。ＭＡＣアドレスに対応するロケーションは、ＭＡＣアドレスに関連付けられた処理済みロケーション情報に少なくとも部分的に基づいて決定することができる。いくつかの実施形態では、ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データは、ＭＡＣアドレスに対応する緯度および経度を決定するための基礎としての役割を果たす。例として、１つまたは複数のＭＡＣアドレス緯度および経度データに少なくとも部分的に基づいて決定される特定のＭＡＣアドレスに対応するロケーションは、特定のＭＡＣアドレスに対応する代表的ロケーションとすることができる。
【００６７】
図４は、本開示の様々な実施形態による、ＭＡＣアドレスに対応する緯度および経度を決定することのフローチャートである。
【００６８】
図４を参照すると、ＭＡＣアドレスに対応する緯度および経度を決定するための方法４００が提供される。いくつかの実施形態では、プロセス４００は、各ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データに従って各ＭＡＣアドレスに対応する緯度および経度を決定するための方法を含む。いくつかの実施形態では、プロセス４００は、図１０のデバイス１０００によって実施される。いくつかの実施形態では、プロセス４００は、図１１のシステム１１００によって実施される。いくつかの実施形態では、図３の３２０は方法４００によって実施される。
【００６９】
４０２において、ＭＡＣアドレスが単一のロケーション情報を有するか、または複数のロケーション情報を有するかが判断される。４０５において、ＭＡＣアドレスが単一のロケーション情報を有する場合、そのロケーション情報は、ＭＡＣアドレスに対応するロケーション情報であると判断される。ＭＡＣアドレスに対応するロケーション情報を用いて、（例えば、そのＭＡＣアドレスを有するネットワークワークデバイスを用いてインターネットにアクセスする）端末の現在のロケーションを決定することができる。ＭＡＣアドレスに対応するロケーション情報は、出力として提供することができるか、またはロケーションベースのサービスを提供するのに用いることができる。
【００７０】
４１０において、ＭＡＣアドレスが複数の対応するロケーション情報を有する場合、ＭＡＣアドレスに対応する任意の２つのロケーション間の距離が第１の閾値距離よりも大きいか否かに関する判断が行われる。いくつかの実施形態では、サーバは、ＭＡＣアドレスに対応する２つのロケーション情報間の距離が第１の閾値距離よりも大きいか否かを判断する。サーバは、各ＭＡＣアドレスに対応する複数のＭＡＣアドレス緯度および経度データ間の２つのＭＡＣアドレス緯度および経度データの全ての組み合わせに対応するロケーション間の距離が第１の閾値距離を超えるか否かを判断することができる。
【００７１】
いくつかの実施形態では、特定のＭＡＣアドレスに対応する複数のＭＡＣアドレス緯度および経度データがクラスタ化される度合いが、ＭＡＣアドレスに対応する任意の２つのロケーション情報間の距離が第１の閾値距離よりも大きいか否かに少なくとも部分的に基づいて測定される。特に、これは、各ＭＡＣアドレスに対応する複数の緯度および経度データ間の各２つの緯度および経度データに対応するロケーション間の距離が第１の閾値距離を超えるか否かである。超える場合、ＭＡＣアドレスに対応する複数の緯度および経度データのロケーションがクラスタ化される。いくつかの実施形態では、特定のＭＡＣアドレスに対応する複数のＭＡＣアドレス緯度および経度データがクラスタ化される度合いが、モバイルＷｉＦｉ等の異常データ（例えば、外れ値）を排除するように測定される。いくつかの実施形態では、モバイルＷｉＦｉは、分散した位置を有し、このため、モバイルＷｉＦｉを用いてインターネットにアクセスするデバイスについて、ＭＡＣアドレスによる位置をＭＡＣアドレスに従って決定することはできない。
【００７２】
第１の閾値距離は、サーバによって自動的に、またはユーザによって（例えば，ロケーションベースのコンテンツ等のコンテキストベースのコンテンツのための設定に基づいて）手動で構成することができる。いくつかの実施形態では、第１の閾値距離は、特定の条件に従って設定される。例えば、無線ネットワーク信号カバレッジ範囲が約５０メートルの無線ネットワーク信号送信機器は、（例えば、無線ルータの場合に）比較的一般的である。したがって、第１の閾値距離は１００メートルにセットすることができる。
【００７３】
各ＭＡＣアドレスに対応する複数のＭＡＣアドレス緯度および経度データ間の各２つの（例えば、任意の組み合わせの２つの）ＭＡＣアドレス緯度および経度データに対応するロケーション間の距離がいずれも第１の閾値距離を超えていない場合、４２０において、少なくとも部分的に、ＭＡＣアドレスに対応する複数のロケーション情報に基づいて、特定のＭＡＣアドレスに対応するロケーションを決定することができる。例えば、サーバは、特定のＭＡＣアドレスに対応するロケーションが、特定のＭＡＣアドレスに対応する複数の（収集された）ロケーション情報の平均であると判断することができる。いくつかの実施形態では、サーバは、特定のＭＡＣアドレスに対応するロケーションが、特定のＭＡＣアドレスに対応する複数の（収集された）ロケーション情報が外れ値ロケーション情報を除去するようにフィルタリング（例えば、処理）された後の、特定のＭＡＣアドレスに対応する複数の（収集された）ロケーション情報の平均であると判断することができる。
【００７４】
いくつかの実施形態では、各ＭＡＣアドレスに対応する複数の緯度および経度データ間の各２つの（例えば任意の組み合わせの２つの）ＭＡＣ緯度および経度データに対応するロケーション間の距離がいずれも第１の閾値距離を超えていない場合、複数のＭＡＣアドレス緯度および経度データの緯度情報および経度情報の平均が、特定のＭＡＣアドレスに対応する緯度情報（例えば、緯度座標）および経度情報（例えば、経度座標）であると判断される。例として、特定のＭＡＣアドレスに対応するロケーションは、特定のＭＡＣアドレスに対応する任意の２つのロケーション間の距離がいずれも第１の閾値距離を超えていない場合、特定のＭＡＣアドレスに対応するロケーション情報の平均であると判断することができる。特定のＭＡＣアドレスに対応する決定されたロケーションは、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースに記憶することができる。
【００７５】
いくつかの実施形態では、各ＭＡＣアドレスに対応する複数のＭＡＣアドレス緯度および経度データ間の各２つのＭＡＣアドレス緯度および経度データに対応するロケーション間の距離がいずれも第１の閾値距離を超えていない場合、ＭＡＣアドレスに対応して複数のＭＡＣアドレス緯度および経度データが発生するロケーションを、比較的クラスタ化していると判断することができる。したがって、複数のＭＡＣアドレス緯度および経度データ間の緯度および経度のそれぞれの平均値を、ＭＡＣアドレスに対応するロケーションに対応すると判断し、そのようにみなすことができる。
【００７６】
対照的に、各ＭＡＣアドレスに対応する複数のＭＡＣアドレス緯度および経度データ間の任意２つのＭＡＣアドレス緯度および経度データに対応するロケーション間の距離が第１の閾値距離を超えている場合、４３０において、ＭＡＣアドレスに対応する複数のロケーション情報の特定のロケーションの頻度に少なくとも部分的に基づいて、特定のＭＡＣアドレスに対応するロケーションを決定することができる。例えば、特定のＭＡＣアドレスに対応するロケーションを、インターネットがＭＡＣアドレスに関連して最も頻繁にアクセスされるロケーションに対応すると判断することができる。
【００７７】
いくつかの実施形態では、４３０において、特定のＭＡＣアドレスに対応する緯度および経度が、複数のＭＡＣアドレス緯度および経度データの間の最大発生日数（ｍｏｓｔ  ｏｃｃｕｒｒｅｎｃｅ  ｄａｙｓ）を有する閾値量の個数のＭＡＣアドレス緯度および経度データに従って決定される。
【００７８】
例えば、複数のＭＡＣアドレス緯度および経度データ間の２つのＭＡＣアドレス緯度および経度データに対応するロケーション間の距離が第１の閾値距離を超える場合、ＭＡＣアドレスに対応して複数のＭＡＣアドレス緯度および経度データが発生するロケーションは、比較的分散している（例えば、クラスタ化していない）とみなされる。ＭＡＣアドレスに対応する緯度情報および経度情報（例えば、緯度および経度座標）は、複数のＭＡＣアドレス緯度および経度データの間の最大発生日数を有する閾値量の個数のＭＡＣアドレス緯度および経度データに従って決定することができる。
【００７９】
閾値量の個数のＭＡＣアドレス緯度および経度データは、サーバによって、ユーザによって（例えば、ロケーションベースのコンテンツ等のコンテキストベースのコンテンツのための設定に基づいて）等により構成することができる。閾値量の個数は、信号強度、時間（例えば、接続時間）等に従って構成することができる。
【００８０】
一例として、ＭＡＣアドレス緯度および経度データの閾値量の個数が３である場合、特定のＭＡＣアドレスに対応する緯度および経度を、特定のＭＡＣアドレスに対応する複数のＭＡＣアドレス緯度および経度データの中の最大発生日数を有する３つのＭＡＣアドレス緯度および経度データに従って決定することができる。特定のＭＡＣアドレスに対応する複数のＭＡＣアドレス緯度および経度データは、特定のＭＡＣアドレスに対応する３の最大発生日数を有するＭＡＣアドレス緯度および経度データを抽出するために、発生日数に従ってランク付けすることができる。次に、特定のＭＡＣアドレスに対応する緯度および経度を、最大発生日数を有する３つのＭＡＣアドレス緯度および経度データの発生日数、およびそれに対応するロケーション間の距離に従って決定することができる。
【００８１】
いくつかの実施形態では、抽出されたＭＡＣアドレス緯度および経度データ（例えば、複数のＭＡＣアドレス緯度および経度データから抽出された複数ＭＡＣアドレス緯度および経度データ間の最大発生日数を有する閾値量の個数のＭＡＣアドレス緯度および経度データ）のＭＡＣアドレス緯度および経度データ間の距離、ならびに他のＭＡＣアドレス緯度および経度データに対応するロケーションを決定することができる。最大発生日数を有するＭＡＣアドレス緯度および経度データに対応するロケーションからの距離を有するＭＡＣアドレス緯度および経度データが第２の閾値距離を超えていない場合、最大発生日数を有するＭＡＣアドレス緯度および経度データの経度データおよび緯度データが、それぞれの発生日数を重みとして用いて重み付けおよび平均される。得られた平均緯度および平均経度を、ＭＡＣアドレスのための緯度および経度であると判断することができる。
【００８２】
例えば、４３０において、一定のＭＡＣアドレスについて抽出された３の最大発生日数を有するＭＡＣアドレス緯度および経度データが、ｒ１（最大発生日数）、ｒ２およびｒ３であると仮定する。ここで、ｒ１＝［ｍａｃ，ｌａｔ１，ｌｏｎｇ１］、ｒ２＝［ｍａｃ，ｌａｔ２，ｌｏｎｇ２］およびｒ３＝［ｍａｃ，ｌａｔ３，ｌｏｎｇ３］である。第２の閾値距離は、第１の閾値距離と同じにすることができる。第１の閾値距離および第２の閾値距離が共に１００メートルであると仮定する。ｒ１と、他の２つのＭＡＣアドレス緯度および経度データ（例えば、ｒ２およびｒ３）に対応するロケーションとの間の距離は、別個に計算することができる。ｒ１およびｒ２に対応するロケーション間で得られる距離が１００メートル以内（例えば、以下）であり、ｒ１およびｒ３に対応するロケーション間の距離が１００メートル未満である場合、ｒ１、ｒ２およびｒ３における緯度データおよび経度データが、それぞれ、ｒ１、ｒ２およびｒ３の発生日数を重みとして用いて重み付けおよび平均化される。ｒ１、ｒ２およびｒ３の発生日数は、それぞれ、ｎ１、ｎ２およびｎ３として表すことができる。平均緯度および平均経度は、（ｎ１／（ｎ１＋ｎ２＋ｎ３）＊ｒ１＋（ｎ２／（ｎ１＋ｎ２＋ｎ３）＊ｒ２＋ｎ３／（ｎ１＋ｎ２＋ｎ３）＊ｒ３）／（緯度および経度データの数）として計算することができる。この例では、緯度および経度データの数は３である。得られた平均緯度および平均経度は、特定のＭＡＣアドレスに対応する緯度および経度であると判断される。対照的に、ｒ１およびｒ２に対応するロケーション間で得られる距離が１００メートル以内（例えば以下）であり、かつ、ｒ１およびｒ３に対応するロケーション間の距離が１００メートルよりも大きい場合、ｒ１およびｒ２の緯度データおよび経度データは、それぞれ、重みとしてｒ１およびｒ２の発生日数（例えば、それぞれｎ１およびｎ２）を用いて重み付けおよび平均化される。平均緯度および平均経度は、（ｎ１／（ｎ１＋ｎ２）＊ｒ１＋（ｎ２／（ｎ１＋ｎ２）＊ｒ２）／（緯度および経度データの数）として計算することができる。この例では、ｒ１およびｒ３に対応するロケーション間の距離が１００メートルより大きいので、緯度および経度データの数は２である。例えば、最大発生日数を有する緯度データおよび経度データ（例えば、最も高い発生頻度を有する緯度データおよび経度データ）間の距離が第２の距離閾値未満である緯度データおよび経度データのみが、特定のＭＡＣアドレスに対応する緯度情報および経度情報の重み付けされた平均を決定するのに用いられる。得られた平均緯度および平均経度は、ＭＡＣアドレスに対応する緯度および経度であると判断する（例えば、そのようにみなす）ことができる。ｒ１およびｒ２、ならびにｒ１およびｒ３の双方について得られた距離が第２の閾値距離（例えば、１００メートル）よりも大きい場合、最大発生日数を有するｒ１の緯度および経度を、ＭＡＣアドレスに対応する緯度および経度であると判断する（例えば、そのようにみなす）ことができる。
【００８３】
いくつかの実施形態では、各収集されたＭＡＣアドレスに対応する緯度および経度が決定された後、各ＭＡＣアドレスに対応するロケーションの信頼レベルを決定することができる。
【００８４】
例えば、各ＭＡＣアドレスに対応するロケーションの信頼レベルは、ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データに対応する信号強度に従って決定することができる。ＭＡＣアドレスごとに、ＭＡＣアドレスに対応する各ＭＡＣアドレス緯度および経度データに対応する信号強度を、ＭＡＣアドレス緯度および経度データの各々の信頼レベルを決定する基礎として用いることができる。例えば、Ｉsignalを、ロケーションにおいて得られるデータの信号強度とする。−５０ｄｂｍ＜Ｉsignal＜０ｄｂｍの信号強度を有するＭＡＣアドレス緯度および経度データのための信頼レベルが１（最強信頼レベル）にセットされる。−７０ｄｂｍ＜Ｉsignal＜−５０ｄｂｍの信号強度を有するＭＡＣアドレス緯度および経度データのための信頼レベルは、２に設定される。−９０ｄｂｍ＜Ｉsignal＜−７０ｄｂｍの信号強度を有するＭＡＣアドレス緯度および経度データのための信頼レベルは、３に設定され、以下同様である。いくつかの実施形態では、ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データの信頼レベル間の最も高い発生数を有する信頼レベルが、ＭＡＣアドレスに対応するロケーションの信頼レベルとして決定される。例えば、ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度情報に関連付けられた最も頻度の高い信頼レベルが、ＭＡＣアドレスに対応するロケーション情報の信頼レベルであると判断される。信頼レベルの値は、信頼度に反比例することができる。例えば、信頼レベル１が最強信頼度に対応することができ、信頼レベル２が２番目に最強の信頼度に対応することができ、以下同様とすることができる。
【００８５】
いくつかの実施形態では、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースが（例えば、端末のロケーションをルックアップするか、または他の形で決定するために）用いられ、（例えば、インターネットに接続する端末に関連付けられた無線信号トランシーバの）ＭＡＣアドレスに対応するロケーションのためにルックアップされる信頼レベルが比較的高い（例えば、信頼レベル閾値を超えている）場合、ＩＰアドレスおよびロケーションの事前に構成された対応関係バンクと組み合わせて、ＭＡＣアドレスに対応するロケーションが更に決定される。
【００８６】
図１の１３０に戻ると、データベース（例えば、ＭＡＣアドレスに関連付けられたロケーションを示すデータベース）がＭＡＣアドレスを含む場合、データベースに含まれるＭＡＣアドレスに対応するロケーションは、端末の現在のロケーションであると判断される（例えば、みなされる）。例えば、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースが、インターネットに接続された端末（例えば、端末がインターネットにアクセスするのに用いるネットワークデバイス）に関連付けられたネットワークデバイス（例えば、無線信号トランシーバ機器）のＭＡＣアドレスを含む場合、ＭＡＣアドレスに対応するロケーション（例えば、ＭＡＣアドレスに対応する緯度情報および経度情報）が、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースにおいてルックアップされる。ＭＡＣアドレスに対応する緯度情報および経度情報は、端末の現在のロケーションの緯度および経度であると判断される。
【００８７】
ＭＡＣアドレスに関連付けられたロケーションを示すデータベースがＭＡＣアドレスを有しない場合、端末のロケーションを、端末のＩＰアドレスに従って決定することができる。
【００８８】
図５は、本出願の様々な実施形態による、ＩＰアドレスに関連付けられたロケーションを示すデータベースを事前構成することのフローチャートである。
【００８９】
図５を参照すると、ＩＰアドレスに関連付けられたロケーションを示すデータベースを構成するための方法５００が提供される。いくつかの実施形態では、方法５００は、図１０のデバイス１０００によって実施される。いくつかの実施形態では、方法５００は、図１１のシステム１１００によって実施される。
【００９０】
５１０において、デバイスのＩＰアドレスおよびデバイスのロケーション情報（例えば、ＩＰアドレスに対応するロケーション情報）が取得される。デバイスは、インターネットにアクセスする端末等とすることができる。いくつかの実施形態では、サーバは、ＩＰアドレスおよびＩＰアドレスに対応するロケーション情報を取得（例えば、収集）する。サーバは、ネットワークアクセスイベントに関連して、デバイスのＩＰアドレスおよびロケーション情報を取得することができる。例えば、ネットワークアクセスイベントは、端末がインターネットにアクセスすること、ウェブページをブラウズすること、ネットワークデバイスと通信すること等とすることができる。例として、ＩＰアドレスは、端末が通信する際に介する無線トランシーバ機器（例えば、無線ルータ、無線スイッチ等）のＩＰアドレスに対応することができ、指定されたフィールド内のメッセージのヘッダまたはペイロードにアタッチされ得る。ＩＰアドレスに対応するロケーション情報は、緯度情報（例えば、緯度座標）および経度情報（例えば、経度座標）を含むことができ、パケットヘッダまたはペイロード内に含まれ得る。特定のＩＰアドレスに関連付けられたロケーション情報は、インターネットが特定のＩＰを介してアクセスされる時点（例えば、ＩＰアドレスを介して、端末がインターネットにアクセスするか、または他の形でオンラインになるとき）の端末のロケーションに対応することができる。ＩＰアドレスに関連するロケーション情報を用いて、端末のロケーションの緯度および経度を決定することができる。
【００９１】
いくつかの実施形態では、モバイルデバイスが、無線信号トランシーバ機器によって送信される無線ネットワーク信号（ＷｉＦｉ信号等であるがこれに限定されない）を通じて（例えば、用いて）インターネットに接続する場合、無線ネットワーク信号を送信している無線信号トランシーバ機器のＩＰアドレスを取得することができる。例えば、モバイルデバイスがインターネットにアクセスする場合、モバイルデバイスは、パケットをネットワーキング機器に送信し、このネットワーキング機器は、そのＩＰアドレスをパケットヘッダまたはペイロードにアタッチし、パケットをその宛先に転送する。このため、モバイルデバイスがインターネットにアクセスするのに用いる無線信号トランシーバデバイス（例えば、ネットワーク機器）のＩＰアドレスは、パケットがその宛先サーバに到達するとき等に、無線信号トランシーバデバイスから下流でパケットヘッダまたはペイロードを解析することによって取得することができる。
【００９２】
いくつかの実施形態では、特定のＩＰアドレスに関連付けて記憶されるロケーション情報は、データの有効時間を有することができる。データの有効時間は、特定のＩＰアドレスに関連付けられたロケーション情報が有効である閾値時間量とすることができる。いくつかの実施形態では、デバイスのＩＰアドレスおよび対応するロケーション情報を、現時点（例えば、ロケーションベースのサービスに関連してデータベースを用いて端末のロケーションが決定される時点）の前の所定の収集期間内で収集することができる。ＩＰアドレスおよび対応するロケーション情報は、現時点より前の所定の収集期間内で発生したネットワーク通信に関連して収集することができる。例えば、ＩＰアドレスおよび各ＩＰアドレスのロケーション情報は、最近の３０日にわたって収集することができる。ＩＰアドレスは、動的に割り当てることができるので、ＩＰアドレスを用いてデバイスに関連付けられたロケーション（例えば、緯度および経度）は、異なるネットワークアクセス時点において異なる場合がある。いくつかの実施形態では、１つまたは複数のロケーション情報（例えば、緯度情報および経度情報）がＩＰアドレスごとに収集される。例えば、各ＩＰアドレスのロケーション情報は、１つまたは複数の緯度情報および経度情報を含む。いくつかの実施形態では、ＩＰアドレスに関連付けられた各緯度情報および経度情報は、端末がＩＰアドレスを介してインターネットにアクセスした（例えば、オンラインになった）ときの異なる時点における端末の緯度および経度に対応する。
【００９３】
５２０において、ＩＰアドレスおよびロケーション情報を用いてデータベースが更新される。いくつかの実施形態では、ＩＰアドレスに関連付けられたロケーションを示すデータベースが、取得したＩＰアドレスおよびロケーション情報を記憶するように構成される。例えば、データベースは、取得したＩＰアドレスへの取得したロケーション情報のマッピングを記憶するように構成することができる。サーバは、ＩＰアドレスおよびロケーション情報を用いてデータベースを構成することができる。サーバは、ＭＡＣアドレス、およびＭＡＣアドレスに対応するロケーション情報等、またはそれらの任意の組み合わせの受信に応答して、所定の時点（例えば、所定の時間間隔）において、ＭＡＣアドレスおよびロケーション情報を用いてデータベースを構成するか、または他の形で更新することができる。いくつかの実施形態では、デバイスがＷｉＦｉネットワークに接続される場合、モバイルデバイスは、モバイルデバイスのロケーションを決定する（例えば、測位する）ことができるマップアプリケーションを実行することができる。モバイルフォンは、ＷｉＦｉネットワークに関連付けられたＭＡＣアドレスを（例えば、ルータ等のＷｉＦｉネットワークとの通信中に受信されるパケットを用いて）取り出すことができる。マップアプリケーションは、ＭＡＣアドレスおよび対応するロケーション情報を、モバイルデバイス上のキャッシュに記憶することができる。いくつかの実施形態では、モバイルデバイスは、データベース（例えば、ローカルデータベース、サーバによってホスティングされるリモートデータベース等）を更新することができる。例えば、モバイルデバイスは、予め定義された時間間隔でデータベースを更新することができる。別の例として、モバイルデバイスは、予め定義されたイベント時（例えば、ネットワークまたはインターネットアクセスイベント等）にデータベースを更新することができる。サーバは、サーバがモバイルデバイスから更新（例えば、ＭＡＣ情報およびロケーション情報を含む）を受信するときに、データベースを構成することができる。
【００９４】
収集されたＩＰアドレスおよび対応するロケーション情報は、ＩＰアドレスおよびロケーションのデータベースに記憶されたＩＰアドレスおよび対応するロケーション間の関係を得るように各ＩＰアドレスに対応する緯度および経度を決定するための基礎として用いることができる。データベースは、端末のＩＰアドレスに従って、端末のロケーションを決定するのに用いることができる。端末のＩＰアドレスは、サーバに通信されたメッセージ（例えば、アクセス要求）に基づいて決定することができる。
【００９５】
図６は、本開示の様々な実施形態による、ＩＰアドレスに対応する緯度および経度を決定することのフローチャートである。
【００９６】
図６を参照すると、ＩＰアドレスに対応するロケーションを決定するための方法６００が提供される。いくつかの実施形態では、プロセス６００は、図１０のデバイス１０００によって実施される。いくつかの実施形態では、プロセス６００は、図１１のシステム１１００によって実施される。いくつかの実施形態では、図５の５２０は、方法６００によって実施される。
【００９７】
いくつかの実施形態では、各収集されたＩＰアドレスのロケーション情報を、各ＩＰアドレスに対応する緯度および経度を決定するための基礎として用いることは、６０５〜６２０を含む。各収集されたＩＰアドレスは、デバイスがインターネットに接続するときのデバイスのＩＰアドレスに対応することができる。
【００９８】
６０５において、ＩＰアドレスおよびその関連付けられたロケーション情報が得られる。いくつかの実施形態では、ＩＰアドレスおよびロケーション情報は、サーバにおいて受信された特にマーキングされたパケットのヘッダおよび／またはペイロード内の特定のフィールドから得られる。
【００９９】
６１０において、ＩＰアドレスに関連付けられたロケーション情報が処理される。いくつかの実施形態では、サーバは、ＩＰアドレスに関連付けられたロケーション情報を処理する。いくつかの実施形態では、データベース（例えば、データベースに連動するプロセッサ）は、ＩＰアドレスに関連付けられたロケーション情報を処理する。収集されたＩＰアドレスおよび各ＩＰアドレスのロケーション情報を処理して、各収集されたＩＰアドレスに対応する１つまたは複数ＭＡＣアドレス緯度および経度データが得られる。
【０１００】
いくつかの実施形態では、各収集されたＩＰアドレスのロケーション情報に含まれる地理的座標情報を処理して、各ＩＰアドレスに対応するＩＰアドレス地理的座標データを得ることができる。各ＩＰアドレスのロケーション情報は、１つまたは複数の地理的座標情報を含むことができるので、特定のＩＰアドレスに関連付けられたロケーション情報を処理することによって、特定のＩＰアドレスに対応する１つまたは複数のＩＰアドレス地理的座標データを得ることができる。各ＩＰアドレス地理的座標データは、ＩＰアドレスと、ＩＰアドレスに関連付けられた１組の緯度および経度データを含むことができる。例えば、ＩＰアドレスに関連付けられたロケーション情報内の任意の１つの地理的座標情報を処理して、ＩＰアドレスに対応するＩＰアドレス地理的座標データを得ることができる。ＩＰアドレスデータに対応するＩＰアドレス地理的座標データのフォーマットは、［ｉｐ，ｌａｔ，ｌｏｎｇ］とすることができここで、「ｉｐ」はＩＰアドレスを表し、「ｌａｔ」は緯度を表し、「ｌｏｎｇ」は経度を表す。ＩＰアドレスに関連付けられたロケーション情報（例えば、緯度データおよび経度データ）は、所望の精度に基づいて所定のルールに従って処理することができる。例えば、経度データおよび緯度データにおける小数点の後ろの最後の３桁を保持し（例えば、小数点に続く３つの場所を捕捉することができる）、地理的座標データの各組に対応する実際の地理的ロケーションについて妥当な誤差（例えば、１ｋｍ内で０．０１度の地理的座標誤差）を確保することができる。
【０１０１】
いくつかの実施形態では、ＩＰアドレスに対応するロケーションを決定するか、またはＩＰアドレスに関連付けられたロケーションを示すデータベースを他の形で構成することは、処理を通じて得られたＩＰアドレス緯度および経度データにおける発生日数が閾値日数未満であるＩＰアドレス緯度および経度データを削除することを含むことができる。例えば、ＩＰアドレス地理的座標データは、１日のみ発生する。ＩＰアドレス地理的座標データは、閾値数５を下回るので、異常データとみなされる可能性が高い。したがって、そのようなデータは、削除するかまたは他の形でフィルタリング除去することができる。いくつかの実施形態では、閾値日数は、ユーザ、サーバ（例えば、コンテキストベースのコンテンツを端末に与えるサーバ）等によって構成することができる。閾値日数は、統計的に関連する尺度に従って外れ値であるとみなされるデータを決定する、１つまたは複数のＩＰアドレス緯度および経度データの統計解析に従って決定することができる。
【０１０２】
６２０において、ＩＰアドレスに対応するロケーションを決定することができる。ＩＰアドレスに対応するロケーションは、ＩＰアドレスに関連付けられた処理済みのロケーション情報に少なくとも部分的に基づいて決定することができる。いくつかの実施形態では、ＩＰアドレスに対応する１つまたは複数のＩＰアドレス緯度および経度データは、ＩＰアドレスに対応する緯度および経度を決定するための基礎としての役割を果たすことができる。例として、１つまたは複数のＩＰアドレス緯度および経度データに少なくとも部分的に基づいて決定された特定のＩＰアドレスに対応するロケーションは、特定のＩＰアドレスに対応する代表的ロケーションとすることができる。
【０１０３】
図７は、本開示の様々な実施形態による、ＩＰアドレスに対応する緯度および経度を決定することのフローチャートである。
【０１０４】
図７を参照すると、ＩＰアドレスに対応する緯度および経度を決定するための方法７００が提供される。いくつかの実施形態では、プロセス７００は、図１０のデバイス１０００によって実施される。いくつかの実施形態では、プロセス７００は、図１１のシステム１１００によって実施される。いくつかの実施形態では、図６の６２０は、方法７００によって実施される。
【０１０５】
いくつかの実施形態では、各ＩＰアドレスに対応する１つまたは複数のＩＰアドレス緯度および経度データに従って各ＩＰアドレスに対応する緯度および経度を決定することは、７１０および７２０を含む。
【０１０６】
７１０において、ＩＰアドレスに関連付けられたロケーション情報の重みが決定される。いくつかの実施形態では、サーバ（例えば、ＩＰアドレスに関連付けられたロケーションを示すデータベースに連動するサーバ）が、ロケーション情報の重みを決定する。ＩＰアドレスについて、このＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の重みが決定される。例えば、各収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス地理的座標データの中のＩＰアドレス地理的座標データの各々の重みが決定される。
【０１０７】
いくつかの実施形態では、ＩＰアドレスについて、１つのみのＩＰアドレス地理的座標データが存在する場合、ＩＰアドレスに関連付けられたロケーション情報の重みは決定される必要がない。例えば、ＩＰアドレスに対応するＩＰアドレス地理的座標データは、ＩＰアドレスに対応するロケーションとみなすことができる。
【０１０８】
いくつかの実施形態では、ＩＰアドレス地理的データの各々の重みを、ＩＰアドレス地理的データが収集される時点（例えば、端末がインターネットにアクセスすること、ウェブページをブラウズすること、ネットワークデバイスと通信すること等とすることができるネットワークアクセスイベントの時点）に従って決定することができる。例えば、比較的、より近時に収集されるＩＰアドレス地理的データ（例えば、より近時のネットワークイベントに関連付けられたＩＰアドレス地理的データ）に、比較的より近時でない収集されたＩＰアドレス地理的データ（例えば、より近時でないネットワークイベントに関連付けられたＩＰアドレス地理的データ）よりも比較的高く重み付けすることができる。いくつかの実施形態では、ＩＰアドレスを動的に位置特定することができるので、ＩＰアドレス地理的データが古くなる可能性がある。ＩＰアドレス地理的データの各々の重みは、ＩＰアドレス地理的データに関連付けられた時点に少なくとも部分的に基づいて決定することができる。
【０１０９】
いくつかの実施形態では、抽出されたＩＰアドレス緯度および経度データ（例えば、複数のＩＰアドレス緯度および経度データから抽出された複数ＩＰアドレス緯度および経度データ間の最大発生日数を有する閾値量の個数のＩＰアドレス緯度および経度データ）のＩＰアドレス緯度および経度データ間の距離、および他のＩＰアドレス緯度および経度データに対応するロケーションを決定することができる。最大発生日数を有するＩＰアドレス緯度および経度データに対応するロケーションからの距離を有するＩＰアドレス緯度および経度データが第３の閾値距離を超えていない場合、最大発生日数を有するＩＰアドレス緯度および経度データの経度データおよび緯度データが、それぞれの発生日数を重みとして用いて重み付けおよび平均される。得られた平均緯度および平均経度を、ＩＰアドレスのための緯度および経度であると判断することができる。
【０１１０】
例えば、一定のＩＰアドレスについて抽出された３の最大発生日数を有するＩＰアドレス緯度および経度データが、ｐ１（最大発生日数）、ｐ２およびｐ３である。ここで、ｐ１＝［ＩＰ，ｌａｔ１，ｌｏｎｇ１］、ｐ２＝［ＩＰ，ｌａｔ２，ｌｏｎｇ２］およびｒ３＝［ＩＰ，ｌａｔ３，ｌｏｎｇ３］である。第３の閾値距離は、第１の閾値距離と同じにすることができる。第１の閾値距離および第３の閾値距離が共に１００メートルであると仮定する。ｐ１と、他の２つのＩＰアドレス緯度および経度データ（例えば、ｐ２およびｐ３）に対応するロケーションとの間の距離は、別個に計算することができる。ｐ１およびｐ２に対応するロケーション間で得られる距離が１００メートル以内（例えば、以下）であり、ｐ１およびｐ３に対応するロケーション間の距離が１００メートル未満である場合、ｐ１、ｐ２およびｐ３における緯度データおよび経度データが、それぞれ、ｐ１、ｐ２およびｐ３の発生日数を重みとして用いて重み付けおよび平均化される。ｐ１、ｐ２およびｐ３の発生日数は、それぞれ、ｎ１、ｎ２およびｎ３として表すことができる。平均緯度および平均経度は、（ｎ１／（ｎ１＋ｎ２＋ｎ３）＊ｐ１＋（ｎ２／（ｎ１＋ｎ２＋ｎ３）＊ｐ２＋ｎ３／（ｎ１＋ｎ２＋ｎ３）＊ｐ３）／（緯度および経度データの数）として計算することができる。この例では、緯度および経度データの数は３である。得られた平均緯度および平均経度は、特定のＩＰアドレスに対応する緯度および経度であると判断される。対照的に、ｐ１およびｐ２に対応するロケーション間で得られる距離が１００メートル以内（例えば以下）であり、かつ、ｐ１およびｐ３に対応するロケーション間の距離が１００メートルよりも大きい場合、ｐ１およびｐ２の緯度データおよび経度データは、それぞれ、重みとしてｐ１およびｐ２の発生日の数（例えば、それぞれｎ１およびｎ２）を用いて重み付けおよび平均化される。平均緯度および平均経度は、（ｎ１／（ｎ１＋ｎ２）＊ｐ１＋（ｎ２／（ｎ１＋ｎ２）＊ｐ２）／（緯度および経度データの数）として計算することができる。この例では、ｐ１およびｐ３に対応するロケーション間の距離が１００メートルより大きいので、緯度および経度データの数は２である。例えば、最大発生日数を有する緯度データおよび経度データ（例えば、最も高い発生頻度を有する緯度データおよび経度データ）間の距離が第３の距離閾値未満である緯度データおよび経度データのみが、特定のＩＰアドレスに対応する緯度情報および経度情報の重み付けされた平均を決定するのに用いられる。得られた平均緯度および平均経度は、ＩＰアドレスに対応する緯度および経度であると判断する（例えば、そのようにみなす）ことができる。ｐ１およびｐ２、ならびにｐ１およびｐ３の双方について得られた距離が第３の閾値距離（例えば、１００メートル）よりも大きい場合、最大発生日数を有するｐ１の緯度および経度を、ＩＰアドレスに対応する緯度および経度であると判断する（例えば、そのようにみなす）ことができる。
【０１１１】
７２０において、ＩＰアドレスに関連付けられたロケーションは、ロケーション情報の重みに少なくとも部分的に基づいて決定される。いくつかの実施形態では、サーバは、特定のＩＰアドレスに関連付けられたロケーションを決定する。決定されたロケーションは、ＩＰアドレスに関連付けられたロケーションを示すデータベースに記憶することができる。いくつかの実施形態では、特定のＩＰアドレスに関連付けられたロケーションは、特定のＩＰアドレスを用いてインターネットにアクセスする端末に、コンテキストベースの（例えば、ロケーションベースの）サービスを提供するのと同時に決定することができる。ＩＰアドレスに関連付けられたロケーションは、（例えば、各収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス地理的座標データの中のＩＰアドレス地理的座標データの各々の重みを用いて）収集されたＩＰアドレスに対応するＩＰアドレス地理的座標データの重みを用いて決定することができる。
【０１１２】
図８は、ＩＰアドレスに対応する各々のＩＰアドレス緯度および経度データの各々の重みを決定するフローチャートである。
【０１１３】
図８を参照すると、ＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の重みを決定するための方法８００が提供される。いくつかの実施形態では、プロセス８００は、図１０のデバイス１０００によって実施される。いくつかの実施形態では、プロセス８００は、図１１のシステム１１００によって実施される。いくつかの実施形態では、図７の７１０は、方法８００によって実施される。
【０１１４】
いくつかの実施形態では、ＩＰアドレスごとに、特定のＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の重みを決定することは、８１０および８２０を含む。
【０１１５】
８１０において、ＩＰアドレスに関連付けられたロケーション情報の第４の閾値距離内で発生する１つまたは複数のロケーション情報が取得される。例えば、ＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々に対応するロケーションの所定の範囲（例えば、第４の閾値距離）内で発生する１つまたは複数のＩＰアドレス緯度および経度データが取得される。
【０１１６】
例えば、第４の閾値距離は、２キロメートルとすることができ、サーバは、ＩＰアドレスに対応するＩＰアドレス地理的座標データの各々における地理的座標に対応するロケーションの２キロメートル以内で発生する全てのＩＰアドレス地理的座標データを取得することができる。特定のＩＰアドレスに対応する他の全てのＩＰアドレス緯度および経度データの２キロメートル以内で発生する特定のＩＰアドレスに対応する１つまたは複数のＩＰアドレス緯度および経度データが取得される。
【０１１７】
８２０において、ロケーション情報の重みが、取得された１つまたは複数のロケーション情報の中の特定のロケーションの発生数に少なくとも部分的に基づいて決定される。いくつかの実施形態では、サーバ（例えば、ＩＰアドレスに関連付けられたロケーションを示すデータベースに連動するサーバ）は、ロケーション情報の重みを決定することができる。特定のＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の重みは、対応するロケーションの所定の範囲内で発生する１つまたは複数のＩＰアドレス緯度および経度データのうちの、所定の期間および発生日数以内のＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の発生日数に従って決定される。所定の範囲は、第４の閾値距離に対応することができる。いくつかの実施形態では、特定のＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の重みは、特定のロケーションからの特定のＩＰアドレスを用いてインターネットがアクセスされる日数に基づいて決定される。
【０１１８】
いくつかの実施形態では、ＩＰアドレス緯度および経度データの各々に対応するロケーションの所定の範囲内で発生する１つまたは複数のＩＰアドレス緯度および経度データの中の各ＩＰアドレス緯度および経度データの発生日数が合算される。所定の範囲は、第４の閾値距離に対応することができるＩＰアドレス緯度および経度データに対応する総日数が得られ、ＩＰアドレス緯度および経度データの発生日数がカウントされる。ＩＰアドレス緯度および経度データの各々に対応する総日数および発生日数が、所定の重みに従って重み付けされる。ＩＰアドレス緯度および経度データの各々の重みが得られる。
【０１１９】
いくつかの実施形態では、全てのＩＰアドレス緯度および経度データについて日数を得るために、各収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス緯度および経度データについて発生日数がカウントされる。１日（例えば、現時点の前の所定の収集時間における任意の１日）の間の１つのＩＰアドレス緯度および経度データの発生が、そのデータについての１つの発生として記録される。更に、ＩＰアドレス緯度および経度データが特定の日に発生する回数にかかわらず、ＩＰアドレス緯度および経度データの全てのインスタンスは、そのＩＰアドレス緯度および経度データについての１発生日として記録される。
【０１２０】
例えば、各ＩＰアドレス緯度および経度データの２キロメートル以内の全てのＩＰアドレス緯度および経度データ（このＩＰアドレス緯度および経度データを含む）についての発生日数を取得し、合算することができ、このＩＰアドレス緯度および経度データに対応する総日数が得られる。更に、所定の期間内（例えば、現時点の前の７日間の間）のこのＩＰアドレス緯度および経度データの発生日数が取得される。対応する総日数および発生日数は、所定の重みに従って重み付けされる。例えば、対応する総日数および発生日数は、１：４の重みに従って重み付けすることができる。重み付けされた値は、特定のＩＰアドレス緯度および経度データの重みとしてとられる。
【０１２１】
図７の７２０に戻ると、ＩＰアドレスに対応する１つまたは複数のＩＰアドレス緯度および経度データの中の最大の重みを有するＩＰアドレス緯度および経度データにおける緯度および経度を、ＩＰアドレスに対応する緯度および経度であると判断することができる。
【０１２２】
図７の７１０に戻ると、ＩＰアドレスに対応する１つまたは複数のＩＰアドレス緯度および経度データの中のＩＰアドレス緯度および経度の各々の重みが決定される場合、その中で最も大きな重みを有するＩＰアドレス緯度および経度データを決定することができ、７２０において、最も大きな重みを有するＩＰアドレス緯度および経度データにおける緯度および経度を、ＩＰアドレスに対応する緯度および経度であると判断することができる（例えば、ロケーションの緯度および経度はＩＰアドレスに対応する）。いくつかの実施形態では、最も大きな重みを有する特定のＩＰアドレスに関連付けられたＩＰアドレス緯度および経度データにおける緯度および経度は、特定のＩＰアドレスに関連付けられたロケーション情報（例えば、緯度および経度）としてＩＰアドレスに関連付けられたロケーションを示すデータベースに記憶することができる。
【０１２３】
図５の５２０に戻ると、各ＩＰアドレスに対応する決定された緯度および経度と、以前に取得されたＩＰアドレスベースのデータベースとがマージされ、ＩＰアドレスに関連付けられたロケーションを示すデータベースを構成するように処理される。
【０１２４】
例えば、各ＩＰアドレスに対応する決定された緯度および経度は、以前に取得されたＩＰアドレスベースのデータベース（例えば、ＩＰアドレスに関連付けられたロケーションを示すデータベースの既存のバージョン）と比較される。ＩＰアドレスベースのデータベースに存在しないＩＰアドレスおよびこのＩＰアドレスに対応する緯度および経度は、ＩＰアドレスとロケーションとの間の関係を提供するＩＰアドレスおよびロケーションのデータベースに追加される。ＩＰアドレスがＩＰアドレスベースのデータベースに存在する場合、ＩＰアドレスに対応する緯度および経度のゾーンが、ＩＰアドレスベースのデータベース内のＩＰアドレスに対応する緯度および経度のゾーンと同じであるか否かについて判断が行われる。ＩＰアドレスに対応する緯度および経度のゾーンが、ＩＰアドレスベースのデータベース内のＩＰアドレスに対応する緯度および経度のゾーンと同じである場合、ＩＰアドレス、ならびにＩＰアドレスに対応する緯度および経度を、ＩＰアドレスに関連付けられたロケーションを示すデータベースに追加することができる。ＩＰアドレスに対応する緯度および経度のゾーンが、ＩＰアドレスベースのデータベース内のＩＰアドレスに対応する緯度および経度のゾーンと同じでない場合、ＩＰアドレスベースのデータベース内の、ＩＰアドレス、ならびにＩＰアドレスに対応する緯度および経度を、ＩＰアドレスに関連付けられたロケーションを示すデータベースに追加し、それによってＩＰアドレスに関連付けられたロケーション情報を置き換えることができる。いくつかの実施形態では、各ＩＰアドレスに対応する決定された緯度および経度、ならびに以前に取得されたＩＰアドレスベースのデータベースを、ＩＰアドレスに関連付けられたロケーションを示すデータベースにマージすることができる。
【０１２５】
例えば、ＩＰアドレスベースのデータベースは、オペレータＩＰデータベース（例えば、特定のＩＰアドレスに対応するロケーションのインジケーションを提供する、商業的に入手可能なサービス）とすることができる。オペレータＩＰデータベースは、ＩＰアドレスに対応する緯度および経度、ならびにＩＰアドレスのロケーションに対応する都市を提供することができる。例えば、上記で説明した５２０において決定されるようなＩＰアドレスに対応する緯度および経度は、［ｌａｔａ，ｌｏｎｇａ］とすることができ、ここで、「ｌａｔａ」は緯度情報（例えば、緯度座標）を表し、「ｌｏｎｇａ」は経度情報（例えば、経度座標）を表す。オペレータＩＰデータベースにおいて、ＩＰアドレスに対応する緯度および経度、ならびにロケーションに対応する都市は、［ｌａｔｂ，ｌｏｎｇｂ，ｃｉｔｙｂ］とすることができ、ここで、「ｃｉｔｙｂ」は、ＩＰアドレスのロケーションに対応する都市を表す。緯度情報および経度情報［ｌａｔａ，ｌｏｎｇａ］がｃｉｔｙｂのゾーン内にあるか否かの判断を（例えば、緯度および経度によって示される都市の制限を用いて）行うことができる。緯度情報および経度情報に関連付けられたロケーションがｃｉｔｙｂのゾーン内にある場合、［ｌａｔａ，ｌｏｎｇａ］は、ＩＰアドレスに対応する緯度情報および経度情報であると判断する（例えば、みなす）ことができる。緯度情報および経度情報［ｌａｔａ，ｌｏｎｇａ］は、ＩＰアドレスに関連付けられたロケーションを示すデータベースに追加することができる。緯度情報および経度情報［ｌａｔａ，ｌｏｎｇａ］に関連付けられたロケーションがｃｉｔｙｂのゾーン内にない場合、［ｌａｔｂ，ｌｏｎｇｂ］を、ＩＰアドレスに対応する緯度および経度であると判断し（例えば、みなし）、ＩＰアドレスに関連付けられたロケーションを示すデータベースに追加することができる。
【０１２６】
いくつかの実施形態では、ＩＰアドレスに関連付けられたロケーションを示すデータベースが構成される場合、データベースは、所定の間隔で更新される。ＩＰアドレスは動的に配分されるので、ＩＰアドレスに対応するロケーションが変化する可能性があるか、または収集されず、このためデータベースに存在していないＩＰアドレスが後に収集される可能性がある。したがって、ＩＰアドレスに関連付けられたロケーションを示すデータベースを所定の間隔で更新することができる。いくつかの実施形態では、所定の条件に従って所定の時間長が決定される。例えば、ＩＰアドレスに関連付けられたロケーションを示すデータベースは、１０分ごとに更新することができる。
【０１２７】
図９は、本出願の様々な実施形態による、ＩＰアドレスに関連付けられたロケーションを示すデータベースを所定の間隔で更新することのフローチャートである。
【０１２８】
図９を参照すると、ＩＰアドレスに関連付けられたロケーションを示すデータベースを更新するための方法９００が提供される。いくつかの実施形態では、プロセス９００は、図１０のデバイス１０００によって実施される。いくつかの実施形態では、プロセス９００は、図１１のシステム１１００によって実施される。
【０１２９】
９１０において、ＩＰアドレス、およびＩＰアドレスに関連付けられたロケーション情報が収集される。いくつかの実施形態では、サーバがＩＰアドレスおよび関連付けられたロケーション情報を収集する（例えば、取得する）。例として、当日発生したＩＰアドレス、および各ＩＰアドレスのロケーション情報が収集される。
【０１３０】
９２０において、特定のＩＰアドレスに現在対応しているロケーション情報が決定される。いくつかの実施形態では、サーバは、特定のＩＰアドレスに現在対応しているロケーション情報を決定する。現時点に最も近い発生時点を有する各ＩＰアドレスのロケーション情報に含まれる緯度情報および経度情報を、ＩＰアドレスに現在対応している緯度情報および経度情報であると判断することができる。例えば、各収集されたＩＰアドレスの最も近時の緯度および経度情報が、ＩＰアドレスに現在対応している緯度および経度であると判断される。
【０１３１】
９３０において、ＩＰアドレスに関連付けられたロケーションを示すデータベースが、特定のＩＰアドレスに関連付けられたロケーション情報を含むか否かに関して判断が行われる。いくつかの実施形態では、サーバは、ＩＰアドレスに関連付けられたロケーションを示すデータベースが、特定のＩＰアドレスに関連付けられたロケーション情報（例えば、緯度情報および経度情報）を含むか否かを判断する。サーバは、ＩＰアドレスに関連付けられたロケーションを示すデータベースが、特定のＩＰアドレスを含むか否か（例えば、データベースがＩＰアドレスについて記録を記憶しているか否か）を判断することができる。例えば、ＩＰアドレスに関連付けられたロケーションを示すデータベースにおいてＩＰアドレスをルックアップすることができるか否かについて判断が行われる。
【０１３２】
ＩＰアドレスに関連付けられたロケーションを示すデータベースが特定のＩＰアドレスを含まない場合、９４０において、特定のＩＰアドレス、およびＩＰアドレスに関連付けられたロケーション情報を、データベースに含めることができる。いくつかの実施形態では、データベースが特定のＩＰアドレスを含まない場合、ＩＰアドレス、ならびにこの特定のＩＰアドレスに現在対応している緯度情報および経度情報をデータベースに記憶することができる。
【０１３３】
対照的に、ＩＰアドレスに関連付けられたロケーションを示すデータベースが特定のＩＰアドレスを含む場合、９５０において、データベースに記憶されたロケーション情報と、特定のＩＰアドレスに現在対応しているロケーション情報との間の距離が閾値を超えているか否かについて判断を行うことができる。閾値は、第４の閾値距離に対応することができる。ＩＰアドレスに関連付けられたロケーションを示すデータベースが特定のＩＰアドレスを含む場合、ＩＰアドレスに関連付けられたロケーションを示すデータベースに記憶されたＩＰアドレスに対応する緯度および経度と、特定のＩＰアドレスに現在対応している緯度および経度との間の距離が第４の閾値距離を超えているか否かに関して判断を行うことができる。
【０１３４】
データベースに記憶されているロケーションと、特定のＩＰアドレスに現在対応しているロケーションとの間の距離が第４の閾値距離を超えている場合、９６０において、ＩＰアドレスに関連付けられたロケーションを示すデータベース内の特定のＩＰアドレスに現在対応しているロケーション情報が記憶される。ＩＰアドレスに関連付けられたロケーションを示すデータベース内の特定のＩＰアドレスに対応する緯度および経度と、特定のＩＰアドレスに現在対応している緯度および経度との間の距離が閾値距離を超えている場合、ＩＰアドレスに関連付けられたロケーションを示すデータベース内のＩＰアドレスに対応する緯度情報および経度情報が、特定のＩＰアドレスに現在対応している緯度情報および経度情報と置き換えられる。
【０１３５】
対照的に、データベースに記憶されているロケーションと、特定のＩＰアドレスに現在対応しているロケーションとの間の距離が第４の閾値距離を超えていない場合、処理を実行する必要がない（例えば、ＩＰアドレスに関連付けられたロケーションを示すデータベースを、特定のＩＰアドレスに関係して変更しないことができる）。例えば、ＩＰアドレスに関連付けられたロケーションを示すデータベース内の特定のＩＰアドレスに対応する緯度および経度と、特定のＩＰアドレスに現在対応している緯度および経度との間の距離が第４の閾値距離を超えていない場合、データベースに記憶された特定のＩＰアドレスに対応するロケーション情報に関係する処理を実行する必要はない。例えば、ＩＰアドレスに関連付けられたロケーションを示すデータベースは、元々ＩＰアドレスに対応していた緯度および経度を維持することができる。
【０１３６】
図１の１６０に戻ると、ＩＰアドレスに関連付けられたロケーションを示すデータベースがＩＰアドレスを含む場合、１６０において、そのＩＰアドレスに対応するロケーションが端末のロケーションであると判断することができる。換言すれば、ＩＰアドレスに関連付けられたロケーションを示すデータベースが端末のＩＰアドレスを含む場合、ＩＰアドレスに対応するロケーション（例えば、緯度および経度）が、ＩＰアドレスに関連付けられたロケーションを示すデータベースにおいてルックアップされる。端末の現在のロケーションは、ＩＰアドレスに関連付けられたロケーションを示すデータベースに記憶されたＩＰアドレスに対応するロケーションの緯度および経度であると判断される。
【０１３７】
ＩＰアドレスに関連付けられたロケーションを示すデータベースがＩＰアドレスを有しない場合、端末の位置決めは、失敗したと判断することができる。例えば、方法１００は、端末のためにロケーションが提供されることなく終了することができる。換言すれば、端末のＩＰアドレスに対応する緯度および経度を、ＩＰアドレスに関連付けられたロケーションを示すデータベースにおいて発見することができなかった。したがって、端末の位置決めは失敗した。
【０１３８】
図１０は、本出願の様々な実施形態による端末ロケーションを決定するためのデバイスの図である。
【０１３９】
図１０を参照すると、端末のロケーションを決定するためのデバイス１０００が提供される。いくつかの実施形態では、デバイス１０００は、図１の方法１００、図２の方法２００、図３の方法３００、図４の方法４００、図５の方法５００、図６の方法６００、図７の方法７００、図８の方法８００、図９の方法９００、またはそれらの任意の組み合わせを実施する。いくつかの実施形態では、デバイス１０００は、図１１のシステム１１００において実施することができる。例えば、デバイス１０００は、図１１のサーバ１１２０、図１１のデータベース１１４０等、またはそれらの任意の組み合わせに対応することができる。
【０１４０】
いくつかの実施形態では、デバイス１０００はサーバに対応する。サーバは、クライアント端末にロケーションベースのサービスを提供するサーバとすることができる。例えば、サーバは、ウェブサイトまたはウェブサービスをホスティングするサーバに対応することができる。いくつかの実施形態では、デバイス１０００は、クライアント端末にロケーションベースのサービスを提供する別のサーバに接続されたサーバに対応する。
【０１４１】
いくつかの実施形態では、デバイス１０００はクライアント端末に対応する。
【０１４２】
いくつかの実施形態では、デバイス１０００は第１の取得モジュール１０１０と、第１の評価モジュール１０２０と、第１の決定モジュール１０３０とを含む。
【０１４３】
第１の取得モジュール１０１０は、端末がインターネットに接続するとき、ネットワーク機器（例えば、無線信号トランシーバ機器）のＭＡＣアドレスを取得するように構成することができる。端末は、ネットワーク機器（例えば、無線信号トランシーバ機器）によって送信された無線ネットワーク信号を受信することによって、インターネットに接続することができる。
【０１４４】
第１の評価モジュール１０２０は、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースが端末に対応するＭＡＣアドレスを含むか否かを判断するように構成することができる。
【０１４５】
第１の決定モジュール１０３０は、データベースが端末に対応するＭＡＣアドレスを含む場合に、データベース（例えば、ＭＡＣアドレスに関連付けられたロケーションを示すデータベース）に含まれるＭＡＣアドレスに対応するロケーションを、端末の現在のロケーションであると判断するように構成することができる。
【０１４６】
いくつかの実施形態では、デバイス１０００は、第２の取得モジュール、第２の評価モジュール、および第２の決定モジュールを含む。
【０１４７】
第２の取得モジュールは、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースが端末に対応するＭＡＣアドレスを含まない場合に、端末のＩＰアドレスを取得するように構成することができる。
【０１４８】
第２の評価モジュールは、ＩＰアドレスに関連付けられたロケーションを示すデータベースが、端末に対応するＩＰアドレスを含むか否かを判断するように構成することができる。
【０１４９】
第２の決定モジュールは、ＩＰアドレスに対応するロケーションを、端末の現在のロケーションであると判断するように構成することができる。
【０１５０】
デバイス１０００は、第１の収集モジュールを更に備えることができる。第１の収集モジュールは、ＭＡＣアドレスと、ＭＡＣアドレスに対応するロケーション情報とを収集するように構成することができる。ロケーション情報は、機器がＭＡＣアドレスに対応する無線信号トランシーバ機器を用いてインターネットに接続するときにインターネットにアクセスする機器（例えば、デバイス）のロケーションの緯度および経度を含むことができる。
【０１５１】
デバイス１０００は、第３の決定モジュールを更に含むことができる。第３の決定モジュールは、各収集されたＭＡＣアドレスおよびそのＭＡＣアドレスに対応するロケーション情報を、各ＭＡＣアドレスに対応する緯度および経度を決定するための基礎として用い、それによって、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースを得る（例えば、構成する）ように構成することができる。
【０１５２】
いくつかの実施形態では、第３の決定モジュールは、第１の処理モジュールと、第１の緯度および経度決定モジュールとを含む。
【０１５３】
第１の処理モジュールは、各収集されたＭＡＣアドレスに対応するロケーション情報を処理し、各ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データを得るように構成することができる。
【０１５４】
第１の緯度および経度決定モジュールは、各ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレスアドレス緯度および経度データを、各ＭＡＣアドレスに対応する緯度および経度を決定するための基礎として用いるように構成することができる。
【０１５５】
いくつかの実施形態では、第１の緯度および経度決定モジュールは、距離評価モジュールと、緯度および経度決定サブモジュールとを含む。
【０１５６】
距離評価モジュールは、各ＭＡＣデータアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データの中の２つのＭＡＣアドレス緯度および経度データの各々に対応するロケーション間の距離が第１の閾値距離を超えるか否かを判断するように構成することができる。
【０１５７】
緯度および経度決定サブモジュールは、１つまたは複数のＭＡＣアドレス緯度および経度データの中の２つのＭＡＣアドレス緯度および経度データの各々に対応するロケーション間の距離のうちのいずれも第１の閾値距離を超えていない場合、１つまたは複数のＭＡＣアドレス緯度および経度データの緯度および経度の平均が、ＭＡＣアドレスに対応する緯度および経度に対応すると判断するように構成することができる。
【０１５８】
いくつかの実施形態では、緯度および経度決定サブモジュールは、１つまたは複数のＭＡＣアドレス緯度および経度データの中の任意の２つのＭＡＣアドレス緯度および経度データに対応するロケーション間の距離が第１の所定の閾値距離を超えている場合、１つまたは複数のＭＡＣアドレス緯度および経度データ間の最大発生日数を有する所定の量のＭＡＣアドレス緯度および経度データが、ＭＡＣアドレスに対応する緯度および経度を決定するための基礎としての役割を果たすと判断するように更に構成することができる。
【０１５９】
いくつかの実施形態では、デバイス１０００は、信頼レベル決定モジュールを更に含むことができる。信頼レベルモジュールは、各ＭＡＣアドレスに対応する緯度および経度の信頼レベルを決定するための基礎として、各ＭＡＣアドレスに対応する信号強度を用いるように構成することができる。
【０１６０】
デバイス１０００は、第２の収集モジュールを更に含むことができる。第２の収集モジュールは、ＩＰアドレスおよび各ＩＰアドレスのロケーション情報を収集するように構成することができる。ＩＰアドレスのロケーション情報は、インターネットがＩＰアドレスを介してアクセスされるときのロケーションの緯度および経度を含むことができる。
【０１６１】
デバイス１０００は、第４の決定モジュールを更に含むことができる。第４の決定モジュールは、各収集されたＩＰアドレスのロケーション情報に従って各ＩＰアドレスに対応する緯度および経度を決定するように構成することができる。
【０１６２】
デバイス１０００は、マージモジュールを更に備えることができる。マージモジュールは、各ＩＰアドレスおよび以前に取得されたＩＰアドレスベースのデータベースに対応する決定された緯度および経度をマージし、処理して、ＩＰアドレスに関連付けられたロケーションを示すデータベースを得る（例えば、構成する）ように構成することができる。
【０１６３】
いくつかの実施形態では、デバイス１０００は第４の決定モジュールを含むことができる。第４の決定モジュールは、第２の処理モジュールと、第２の緯度および経度決定モジュールとを含むことができる。
【０１６４】
第２の処理モジュールは、各収集されたＩＰアドレス、および各ＩＰアドレスのロケーション情報を処理して、各収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス緯度および経度データを得るように構成することができる。
【０１６５】
第２の緯度および経度決定モジュールは、各収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス緯度および経度データを、各ＩＰアドレスに対応する緯度および経度を決定するための基礎として用いるように構成することができる。
【０１６６】
いくつかの実施形態では、第２の決定モジュールは、重み決定モジュールと、第２の緯度および経度決定サブモジュールとを更に含むことができる。
【０１６７】
重み決定モジュールは、ＩＰアドレスごとに、ＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の重みを決定するように構成することができる。
【０１６８】
第２の緯度および経度決定サブモジュールは、ＩＰアドレスに対応する１つまたは複数のＩＰアドレス緯度および経度データの中の、最も大きな重みを有するＩＰアドレス緯度および経度データにおける緯度および経度を、ＩＰアドレスに対応する緯度および経度であると判断するように構成することができる。
【０１６９】
いくつかの実施形態では、重み決定モジュールは、取得サブモジュールと、重み決定サブモジュールとを更に含むことができる。
【０１７０】
取得サブモジュールは、ＩＰアドレスに対応するＩＰアドレス地理的座標データの各々に対応するロケーションの所定の範囲内で発生する１つまたは複数のＩＰアドレス地理的座標データを取得するように構成することができる。
【０１７１】
重み決定サブモジュールは、所定の期間内のＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の発生日数、および対応するロケーションの所定の範囲内で発生する１つまたは複数のＩＰアドレス緯度および経度データの発生日数に従って、ＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の重みを決定するように構成することができる。
【０１７２】
いくつかの実施形態では、デバイス１０００は、ＩＰアドレスに関連付けられたロケーションを示すデータベースを構成する（例えば、更新する）ための更新モジュールを更に含むことができる。更新モジュールは、所定の間隔でＩＰアドレスに関連付けられたロケーションを示すデータベースを更新するように構成することができる。更新モジュールは、収集サブモジュール、決定サブモジュール、第１の評価サブモジュール、および追加サブモジュールを更に含むことができる。
【０１７３】
収集サブモジュールは、当日に発生したＩＰアドレスと、各ＩＰアドレスのロケーション情報とを収集するように構成することができる。
【０１７４】
決定サブモジュールは、現時点に最も近い発生時点を有する各ＩＰアドレスのロケーション情報における緯度および経度を、ＩＰアドレスに現在対応している緯度および経度として決定するように構成することができる。
【０１７５】
第１の評価サブモジュールは、ＩＰアドレスに関連付けられたロケーションを示すデータベースがＩＰアドレスを含むか否かを判断するように構成することができる。
【０１７６】
追加サブモジュールは、データベースがＩＰアドレスを含まない場合に、ＩＰアドレスに関連付けられたロケーションを示すデータベースに、現在対応している緯度および経度へのＩＰアドレスの対応関係を追加するように構成することができる。
【０１７７】
いくつかの実施形態では、更新モジュールは、第２の評価サブモジュールおよび置換サブモジュールを更に含む。
【０１７８】
第２の評価サブモジュールは、ＩＰアドレスに関連付けられたロケーションを示すデータベースがＩＰアドレスを含む場合に、ＩＰアドレスに関連付けられたロケーションを示すデータベース内のＩＰアドレスに対応するロケーションと、ＩＰアドレスに現在対応している緯度および経度との間の距離が、閾値距離（例えば、第４の閾値距離）を超えているか否かを判断するように構成することができる。
【０１７９】
置換サブモジュールは、ＩＰアドレスの上記対応関係のデータベースにおける上記ＩＰアドレスに対応するロケーションと、上記ＩＰアドレスに現在対応しているロケーションならびに緯度および経度との間の距離が第２の所定の距離を超えている場合、構成することができ、ＩＰアドレスに関連付けられたロケーションを示すデータベース内のＩＰアドレスに対応するロケーションと、このＩＰアドレスに現在対応している緯度および経度との間の距離が、閾値距離（例えば、第４の閾値距離）を超えている場合、ＩＰアドレスに関連付けられたロケーションを示すデータベース内のＩＰアドレスに対応する緯度および経度を、ＩＰアドレスに現在対応している緯度および経度と置き換えるように構成することができる。
【０１８０】
図１１は、本出願の様々な実施形態による、端末ロケーションを決定するためのシステムの構造ブロック図である。
【０１８１】
図１１を参照すると、端末のロケーションを決定するためのシステム１１００が提供される。いくつかの実施形態では、システム１１００は、図１の方法１００、図２の方法２００、図３の方法３００、図４の方法４００、図５の方法５００、図６の方法６００、図７の方法７００、図８の方法８００、図９の方法９００、またはそれらの任意の組み合わせを実施する。いくつかの実施形態では、図１０のデバイス１０００は、システム１１００において実施することができる。例えば、デバイス１０００は、サーバ１１２０、データベース１１４０等、またはそれらの任意の組み合わせに対応することができる。
【０１８２】
端末のロケーションを決定するためのシステム１１００は、クライアント端末１１１０と、サーバ１１２０とを含む。
【０１８３】
システム１１００は、ネットワークも備えることができ、このネットワークを通じてクライアント端末１１１０およびサーバ１１２０が通信することができる。ネットワーク１１３０は、ＬＡＮ、広域エリアネットワーク（ＷＡＮ）、インターネット等とすることができる。
【０１８４】
システム１１００は、１つまたは複数のデータベース１１４０を備えることができる。いくつかの実施形態では、データベース１１４０は、ＭＡＣアドレスに関連付けられたロケーションを示すデータベースに対応することができる。いくつかの実施形態では、データベース１１４０は、ＩＰアドレスに関連付けられたロケーションを示すデータベースに対応することができる。いくつかの実施形態では、サーバ１１２０はデータベース１１４０を構成することができる。例えば、サーバ１１２０は、（例えば、ＭＡＣアドレスまたはＩＰアドレス等のアドレスに対するロケーションのマッピングを更新するために）データベース１１４０を更新することができる。サーバ１１２０は、データベース１１４０に問い合わせを行い、端末１１１０によってサーバ１１２０（例えば、またはインターネット）のアクセスに関連して端末１１１０から受信されたＭＡＣアドレスまたはＩＰアドレスに少なくとも部分的に基づいて、端末１１１０の現在のロケーションを決定することができる。
【０１８５】
図１２は、本開示の様々な実施形態に従って端末のロケーションを決定するためのコンピュータシステムの機能図である。
【０１８６】
図１２を参照すると、ウェブサイトにアクセスするか、またはウェブサイトにアクセスする端末がモバイル端末であるか否かを判断するためのコンピュータシステム１２００が提供される。明らかとなるように、ビデオ呼を実施するために、他のコンピュータシステムアーキテクチャおよび構成を用いてもよい。以下で説明されるような様々なサブシステムを含むコンピュータシステム１２００は、少なくとも１つのマイクロプロセッササブシステム（プロセッサまたは中央処理装置（ＣＰＵ）とも呼ばれる）１２０２を備える。例えば、プロセッサ１２０２は、シングルチッププロセッサによって、または複数のプロセッサによって実施することができる。いくつかの実施形態では、プロセッサ１２０２は、コンピュータシステム１２００の動作を制御する汎用デジタルプロセッサである。メモリ１２１０から取り出された命令を用いて、プロセッサ１２０２は、入力データの受信および操作を制御し、出力デバイス（例えば、ディスプレイ１２１８）に対するデータの出力および表示を制御する。
【０１８７】
プロセッサ１２０２は、メモリ１２１０と双方向に結合され、メモリ１２１０は、第１のプライマリストレージ、通常、ランダムアクセスメモリ（ＲＡＭ）と、第２のプライマリストレージエリア、通常、リードオンリーメモリ（ＲＯＭ）とを含むことができる。当該技術分野においてよく知られているように、プライマリストレージを通常のストレージエリアおよびスクラッチパッドメモリとして用いることができ、入力データおよび処理されたデータを記憶するのに用いることもできる。プライマリストレージは、プロセッサ１２０２上で動作するプロセスのための他のデータおよび命令に加えて、データオブジェクトおよびテキストオブジェクトの形態でプログラミング命令およびデータを記憶することもできる。同様に当該技術分野において既知であるように、プライマリストレージは通常、基本動作命令、プログラムコード、データ、およびプロセッサ１２０２がその機能（例えば、プログラムされた命令）を実行するのに用いるオブジェクトを含む。例えば、メモリ１２１０は、例えば、データアクセスが双方向または単方向である必要があるか否かに依拠して、以下で説明される任意の適切なコンピュータ可読ストレージ媒体を含むことができる。例えば、プロセッサ１２０２は、キャッシュメモリ（図示せず）内の頻繁に必要となるデータを直接および非常に迅速に取り出し、かつ記憶することもできる。
【０１８８】
取り外し可能なマスストレージデバイス１２１２は、コンピュータシステム１２００のための追加のデータストレージ容量を提供し、プロセッサ１２０２に対し双方向に（読出し／書込み）、または単方向に（リードオンリー）に結合される。例えば、ストレージ１２１２は、磁気テープ、フラッシュメモリ、ＰＣ−ＣＡＲＤＳ、ポータブルマスストレージデバイス、ホログラフィックストレージデバイスおよび他のストレージデバイス等のコンピュータ可読媒体も含むことができる。固定マスストレージ１２２０も、例えば、追加のデータストレージ容量を提供することができる。マスストレージ１２２０の最も一般的な例はハードディスクドライブである。マスストレージデバイス１２１２および固定マスストレージ１２２０は一般的に、プロセッサ１２０２によって通常アクティブに使用されない追加のプログラミング命令、データ等を記憶する。必要な場合、マスストレージデバイス１２１２および固定マスストレージデバイス１２２０内に保持される情報を、仮想メモリとしてメモリ１２１０（例えば、ＲＡＭ）の一部として標準的方式で組み込むことができることが理解されよう。
【０１８９】
プロセッサ１２０２にストレージサブシステムへのアクセスを提供することに加えて、バス１２１４は、他のサブシステムおよびデバイスにアクセスを提供するためにも用いることができる。図示されるように、これらは、表示モニタ１２１８、ネットワークインタフェース１２１６、キーボード１２０４およびポインティングデバイス１２０６、ならびに必要に応じて補助入力／出力デバイスインタフェース、サウンドカード、スピーカおよび他のサブシステムを備えることができる。例えば、ポインティングデバイス１２０６は、マウス、スタイラス、トラックボールまたはタブレットとすることができ、グラフィカルユーザインタフェースとインタフェースするのに有用である。
【０１９０】
ネットワークインタフェース１２１６は、プロセッサ１２０２が、示されるようなネットワーク接続を用いて別のコンピュータ、コンピュータネットワークまたは電気通信ネットワークに結合されることを可能にする。例えば、ネットワークインタフェース１２１６を通じて、プロセッサ１２０２は、方法／プロセスステップを実行する過程で、別のネットワークから情報（例えば、データオブジェクトまたはプログラム命令）を受信し、または別のネットワークに情報を出力することができる。多くの場合に、プロセッサ上で実行される命令のシーケンスとして表される情報は、別のネットワークから受信され、かつ別のネットワークに出力され得る。プロセッサ１２０２によって実施される（例えば、動作／実行される）インタフェースカードまたは同様のデバイスおよび適切なソフトウェアを用いて、コンピュータシステム１２００を外部ネットワークに接続し、標準プロトコルに従ってデータを転送することができる。例えば、本明細書に開示される様々なプロセス実施形態を、プロセッサ１２０２において実行することができるか、またはインターネット、イントラネットネットワーク、またはローカルネットワーク等のネットワークにわたって、処理の一部を共有するリモートプロセッサと合わせて実行することができる。追加のマスストレージデバイス（図示せず）もネットワークインタフェース１２１６を通じてプロセッサ１２０２に接続することができる。
【０１９１】
補助Ｉ／Ｏデバイスインタフェース（図示せず）をコンピュータシステム１２００と共に用いることができる。補助Ｉ／Ｏデバイスインタフェースは、プロセッサ１２０２が送信し、かつより一般的には、マイクロフォン、タッチセンサー式ディスプレイ、トランスデューサカードリーダ、テープリーダ、音声または手書き認識器、バイオメトリクスリーダ、カメラ、ポータブルマスストレージデバイスおよび他のコンピュータ等の他のデバイスからデータを受信することを可能にする、通常のインタフェースおよびカスタマイズされたインタフェースを含むことができる。
【０１９２】
図１２に示すコンピュータシステムは、本明細書に開示される様々な実施形態と共に用いるのに適したコンピュータシステムの例にすぎない。そのような使用に適した他のコンピュータシステムは、更なるまたはより少ないサブシステムを含むことができる。加えて、バス１２１４は、サブシステムにリンクする役割を果たす任意の相互接続方式を示す。サブシステムの異なる構成を有する他のコンピュータアーキテクチャも利用することができる。
【０１９３】
上記で説明されるモジュールは、１つまたは複数の汎用プロセッサにおいて実行されるソフトウェアコンポーネントとして、プログラマブル論理デバイス等のハードウェアとして、および／もしくは特定の関数を実行するように設計された特定用途向け集積回路として、またはそれらの組み合わせとして実施することができる。いくつかの実施形態では、モジュールは、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワーク機器等）に本明細書の実施形態において説明される方法を実施させるためのいくつかの命令を含む、不揮発性記憶媒体（光ディスク、フラッシュストレージデバイス、モバイルハードディスク等）に記憶することができるソフトウェア製品の形態によって実現することができる。モジュールは、単一のデバイス上で実施することもできるし、または複数のデバイスにわたって分散させることもできる。モジュールの機能は、互いにマージすることもできるし、または複数のサブモジュールに更に分割することもできる。
【０１９４】
理解を明確にするために、上記の実施形態が幾分詳細に説明されたが、本発明は、提供される詳細に限定されない。本発明を実施する多くの代替的な方法が存在する。開示される実施形態は説明的であり、限定するものではない。
［適用例１］
端末によってネットワークにアクセスするために用いられるネットワーク機器の媒体アクセス制御（ＭＡＣ）アドレスを取得することと、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示すデータベースが前記取得されたＭＡＣアドレスを含むか否かを判断することと、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含む場合に、前記端末の現在のロケーションが前記データベースに記憶されている前記取得されたＭＡＣアドレスに関連付けられたロケーションに対応すると判断することと、
前記端末の前記現在のロケーションを出力することと、
を含む、方法。
［適用例２］
適用例１に記載の方法であって、前記ネットワーク機器は、無線信号を用いて前記端末と通信する無線信号トランシーバ機器である、方法。
［適用例３］
適用例１に記載の方法であって、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含まない場合、前記端末のインターネットプロトコル（ＩＰ）アドレスを取得することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示すデータベースが前記端末の前記ＩＰアドレスを含むか否かを判断することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記端末の前記ＩＰアドレスを含む場合、前記端末の前記現在のロケーションが、前記データベースに記憶された前記端末の前記ＩＰアドレスに関連付けられたロケーションに対応すると判断することと、
を更に含む、方法。
［適用例４］
適用例１に記載の方法であって、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースを構成することであって、それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースを前記構成することは、
ＭＡＣアドレスおよび対応するロケーション情報を収集することであって、前記ロケーション情報は、デバイスが特定のＭＡＣアドレスに対応するネットワーク機器を用いてインターネットに接続する間の前記のデバイス緯度および経度を含むことと、
前記収集されたＭＡＣアドレスおよび対応するロケーション情報を用いて、各ＭＡＣアドレスに対応する緯度および経度を決定し、それぞれのＭＡＣアドレスに関連付けられたロケーションのマッピングを生成することと、
を更に含む、方法。
［適用例５］
適用例４に記載の方法であって、前記収集されたＭＡＣアドレスおよび対応するロケーション情報を用いて、前記ＭＡＣアドレスに対応する前記緯度および前記経度を決定し、それぞれのＭＡＣアドレスに関連付けられたロケーションの前記マッピングを生成することは、
収集されたＭＡＣアドレスに対応する前記ロケーション情報を処理して、前記収集されたＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データを得ることと、
各ＭＡＣアドレスに対応する１つまたは複数のＭＡＣアドレス緯度および経度データを用いて、前記特定のＭＡＣアドレスに対応する緯度および経度を決定することと、
を含む、方法。
［適用例６］
適用例５に記載の方法であって、
複数のＭＡＣアドレス緯度および経度データが得られ、
前記ＭＡＣアドレスに対応する前記１つまたは複数のＭＡＣアドレス緯度および経度データを用いて、前記ＭＡＣアドレスに対応する前記緯度および経度を決定することは、
各ＭＡＣアドレスに対応する前記複数のＭＡＣアドレス緯度および経度データの中の任意の２つのＭＡＣアドレス緯度および経度データにそれぞれ対応するロケーション間の距離が第１の閾値距離を超えているか否かを判断することと、
各ＭＡＣアドレスに対応する前記複数のＭＡＣアドレス緯度および経度データの中の任意の２つのＭＡＣアドレス緯度および経度データにそれぞれ対応する前記ロケーション間の前記距離がいずれも前記第１の閾値距離を超えていない場合、前記ＭＡＣアドレスに対応する前記緯度および前記経度が、前記複数のＭＡＣアドレス緯度および経度データの前記緯度および前記経度の平均に対応すると判断することと、
を含む、方法。
［適用例７］
適用例６に記載の方法であって、
前記複数のＭＡＣアドレス緯度および経度データの中の任意の２つのＭＡＣアドレス緯度および経度データにそれぞれ対応する前記ロケーション間の距離が前記第１の閾値距離を超えている場合、前記ＭＡＣアドレスに対応する前記緯度および前記経度が、前記複数のＭＡＣアドレス緯度および経度データの中の最大発生日数を有する所定の量のＭＡＣアドレス緯度および経度データに関連付けられた緯度および経度に対応すると判断することを更に含む、方法。
［適用例８］
適用例５に記載の方法であって、
前記データベースに記憶された各ＭＡＣアドレスに対応する各緯度および経度の信頼レベルを決定することを更に含む、方法。
［適用例９］
適用例４に記載の方法であって、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースを構成することは、
ＩＰアドレスおよび前記ＩＰアドレスにそれぞれ対応するロケーション情報を収集することであって、前記収集されたＩＰアドレスのＩＰアドレスに対応する前記ロケーション情報は、前記インターネットが前記それぞれのＩＰアドレスを通じてアクセスされたロケーションの地理的座標を含むことと、
前記ロケーション情報に少なくとも部分的に基づいて、前記ＩＰアドレスにそれぞれ対応する緯度および経度を決定することと、
前記ＩＰアドレスに対応する前記決定された緯度および経度と、以前に取得されたＩＰアドレスベースのデータベースとのうちの一方に少なくとも部分的に基づいて、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースを構成することと、
を含む、方法。
［適用例１０］
適用例９に記載の方法であって、前記ロケーション情報に少なくとも部分的に基づいて、前記ＩＰアドレスに対応する前記緯度および前記経度を前記決定することは、
収集されたＩＰアドレスおよびＩＰアドレスロケーション情報を処理して、前記収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス地理的座標データを得ることと、
前記収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス地理的座標データを用いて、前記ＩＰアドレスに対応する前記緯度および前記経度を決定することと、
を含む、方法。
［適用例１１］
適用例１０に記載の方法であって、前記収集されたＩＰアドレスに対応する１つまたは複数のＩＰアドレス緯度および経度データを前記用いて、前記ＩＰアドレスに対応する前記緯度および前記経度を決定することは、
前記ＩＰアドレスについて、前記ＩＰアドレスに対応するＩＰアドレス地理的座標データの各々の重みを決定することと、
前記ＩＰアドレスに関連付けられた地理的座標が、前記ＩＰアドレスに対応する前記１つまたは複数のＩＰアドレス地理的座標データの中の、最も大きな重みを有する前記ＩＰアドレス地理的座標データ内の地理的座標に対応すると判断することと、
を含む、方法。
［適用例１２］
適用例１１に記載の方法であって、前記ＩＰアドレスについて、前記ＩＰアドレスに対応するＩＰアドレス地理的座標データの各々の前記重みを前記決定することは、
前記ＩＰアドレスに対応するＩＰアドレス地理的座標データの各々に対応するロケーションの閾値範囲内で発生する１つまたは複数のＩＰアドレス地理的座標データを取得することと、
閾値期間内で前記ＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の発生日数、および対応するロケーションの閾値範囲内で発生する１つまたは複数のＩＰアドレス緯度および経度データの発生日数に従って、前記ＩＰアドレスに対応するＩＰアドレス緯度および経度データの各々の重みを決定することと、
を含む、方法。
［適用例１３］
適用例９に記載の方法であって、
所定の間隔において、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースを更新することであって、前記データベースを前記更新することは、
当日発生したＩＰアドレス、および各収集されたＩＰアドレスのロケーション情報を収集することと、
現時点に最も近い発生時点を有する各収集されたＩＰアドレスのロケーションに関連付けられた緯度および経度を、特定のＩＰアドレスに現在対応している緯度および経度に対応すると判断することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記特定のＩＰアドレスを含むか否かを判断することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記特定のＩＰアドレスを含まない場合、前記特定のＩＰアドレスならびに対応する緯度および経度を、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースに追加することと、
を更に含む、方法。
［適用例１４］
適用例１３に記載の方法であって、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記特定のＩＰアドレスを含む場合、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベース内の前記特定のＩＰアドレスに対応するロケーションと、前記特定のＩＰアドレスに現在対応している前記緯度および前記経度との間の距離が第４の閾値距離を超えているか否かを判断することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベース内の前記特定のＩＰアドレスに対応する前記ロケーションと、前記特定のＩＰアドレスに現在対応している前記緯度および前記経度との間の前記距離が前記第４の閾値距離を超えている場合、それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベース内の前記特定のＩＰアドレスに対応する緯度および経度を、前記特定のＩＰアドレスに現在対応している前記緯度および前記経度と置換することと、
を更に含む、方法。
［適用例１５］
デバイスであって、
少なくとも１つのプロセッサであって、
端末によってネットワークにアクセスするために用いられるネットワーク機器の媒体アクセス制御（ＭＡＣ）アドレスを取得し、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示すデータベースが前記取得されたＭＡＣアドレスを含むか否かを判断し、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含む場合、前記端末の現在のロケーションが、前記データベースに記憶された前記取得されたＭＡＣアドレスに関連付けられたロケーションに対応すると判断し、
前記端末の前記現在のロケーションを出力するように構成される、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合され、前記少なくとも１つのプロセッサに命令を提供するように構成される、メモリと、
を備える、デバイス。
［適用例１６］
適用例１５に記載のデバイスであって、前記ネットワーク機器は、無線信号を用いて前記端末と通信する無線信号トランシーバ機器である、デバイス。
［適用例１７］
適用例１５に記載のデバイスであって、前記少なくとも１つのプロセッサは、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが、前記取得されたＭＡＣアドレスを含まない場合、前記端末のインターネットプロトコル（ＩＰ）アドレスを取得し、
それぞれのＩＰアドレスに関連付けられたロケーションを示すデータベースが前記端末の前記ＩＰアドレスを含むか否かを判断し、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記端末の前記ＩＰアドレスを含む場合、前記端末の前記現在のロケーションが、前記データベースに記憶された前記端末の前記ＩＰアドレスに関連付けられたロケーションに対応すると判断する、
ように更に構成される、デバイス。
［適用例１８］
有形非一時的コンピュータ可読記憶媒体において具現化され、コンピュータ命令を含むコンピュータプログラム製品であって、前記コンピュータ命令は、
端末によってネットワークにアクセスするために用いられるネットワーク機器の媒体アクセス制御（ＭＡＣ）アドレスを取得することと、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示すデータベースが前記取得されたＭＡＣアドレスを含むか否かを判断することと、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含む場合に、前記端末の現在のロケーションが前記データベースに記憶されている前記取得されたＭＡＣアドレスに関連付けられたロケーションに対応すると判断することと、
前記端末の前記現在のロケーションを出力することと、
を行うためのものである、コンピュータプログラム製品。
［適用例１９］
適用例１８に記載のコンピュータプログラム製品であって、前記ネットワーク機器は、無線信号を用いて前記端末と通信する無線信号トランシーバ機器である、コンピュータプログラム製品。
［適用例２０］
適用例１８に記載のコンピュータプログラム製品であって、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースが前記取得されたＭＡＣアドレスを含まない場合、前記端末のインターネットプロトコル（ＩＰ）アドレスを取得することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示すデータベースが前記端末の前記ＩＰアドレスを含むか否かを判断することと、
それぞれのＩＰアドレスに関連付けられたロケーションを示す前記データベースが前記端末の前記ＩＰアドレスを含む場合、前記端末の前記現在のロケーションが、前記データベースに記憶された前記端末の前記ＩＰアドレスに関連付けられたロケーションに対応すると判断することと、
を行うためのコンピュータ命令を更に含む、コンピュータプログラム製品。
［適用例２１］
適用例１８に記載のコンピュータプログラム製品であって、
それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースを構成するためのコンピュータ命令を更に含み、それぞれのＭＡＣアドレスに関連付けられたロケーションを示す前記データベースを前記構成することは、
ＭＡＣアドレスおよび対応するロケーション情報を収集することであって、前記ロケーション情報は、デバイスが特定のＭＡＣアドレスに対応するネットワーク機器を用いてインターネットに接続する間の前記デバイスの緯度および経度を含むことと、
前記収集されたＭＡＣアドレスおよび対応するロケーション情報を用いて、各ＭＡＣアドレスに対応する緯度および経度を決定し、それぞれのＭＡＣアドレスに関連付けられたロケーションのマッピングを生成することと、
含む、コンピュータプログラム製品。
【図１】
0006307176.tif 000002
【図２】
0006307176.tif 000003
【図３】
0006307176.tif 000004
【図４】
0006307176.tif 000005
【図５】
0006307176.tif 000006
【図６】
0006307176.tif 000007
【図７】
0006307176.tif 000008
【図８】
0006307176.tif 000009
【図９】
0006307176.tif 000010
【図１０】
0006307176.tif 000011
【図１１】
0006307176.tif 000012
【図１２】
0006307176.tif 000013