web-dev-qa-db-ja.com

Google Latitudeのようなサービスは、GPSを使用せずにラップトップを完全にジオロケーションする方法を教えてください。

Google Latitudeのようなサービスは、ブラウザを介して、明らかにインターネット接続(Wi-Fiではなくイーサネット)を介して、現在のパブリックIPアドレスのみで完全に現在地を取得するにはどうすればよいですか?私のISPに尋ねることによって?

7
zeminlu

Google Latitudeは、より一般的な Skyhook Wireless システムとまったく同じプリンシパルで動作する独自のGoogleサービスを使用しています。ソフトウェアはwifiアダプターから読み取り値を取得し、それらを既知のワイヤレスネットワークとその場所のデータベースと比較して、信号強度に基づいて位置を三角測量できるようにします。これにより、サービスはGPSなしで正確な位置を特定できます。

WiFiネットワークのデータベースは非常に広範で、複数のソースから提供されています。まず、WiGLEなどの公開データベースからインポートする可能性があります。次に、サービスを実行しているラップトップが新しいネットワークを検出すると、サービスに報告されます。複数のコンピューターが新しいネットワークを報告する場合、既知のコンピューターの位置に基づいてその位置を三角測量できます。すべてのワイヤレスネットワーク(同じESSIDを持つネットワークも含む)には製造元によって割り当てられた一意のインターフェイスMACアドレスがあるため、すべてのワイヤレスネットワークのデータベースを保持するのは非常に簡単です。

8
jcrawfordor

[@jcrawfordorの回答に賛成/同意してください。ただし、情報を追加したかったので、コメントボックスの文字数制限が小さすぎたため、代わりに回答として入力することにしました。]

WebブラウザのGeolocation API に注意してください。初めてGoogleLatitudeにアクセスしたときに、ブラウザにGoogleLatitudeにMacの位置情報サービスデータへのアクセスを許可したことを忘れた可能性があります。 Geolocation APIをネイティブにサポートしていないブラウザの場合、ダウンロード可能なブラウザプラグインまたはJavaアプレットがあり、ほとんどの場合、Wi-Fiカードにどのネットワークを照会することでこの種の機能を提供します。 Skyhookの「Loki」テクノロジーはJavaアプレットですが、システムAPIにアクセスしてWi-Fiカードにネットワークスキャンデータを照会する必要があるため、ブラウザは要求する必要があります。 Lokiを実行する前の権限。通常、Javaアプリは完全にサンドボックス化されており、プライバシーを侵害したり、システム上の何かにアクセスしたりすることはできないため、実行するための権限は必要ありません。

GoogleLatitudeに初めてアクセスしたときのSafariの機能は次のとおりです。
Safari asking permission for Google Latitude to access your location information

SkyhookのLokiアプレットをロードしようとすると、Safariは次のように動作します。
Skyhook Loki applet asking permission to access system

4
Spiff

@jcrawfordorはほとんどそれを釘付けにし、OPはこれを超えたに違いありませんが、ここで終わる他の人のためだけに、以下が行われています。

Google、Mozilla、およびその他のいくつかには、データが入力される独自のWifiロケーションデータベースがあります。プロバイダーは、プライバシーを懸念している場合、「_ nomap」を介してwifi名(SSID)へのこのマッピングを無効にするオプションがあります。

したがって、位置検索は、信号の強度に基づくルックアップの拡張にすぎません。さらに、これらはプライベートデータベース、つまりFBとMozillaです。 OpenWLANMap のようなパブリックDBを調べることができます。

お役に立てれば。

1
humblerookie

IPアドレスはブロック単位でISPに割り当てられます。特定のISPがビジネスを行っている場所がわかっている場合は、IPアドレスのブロックを一般的な地理的な場所にマップできます。ただし、必ずしも完璧とは限りません。たとえば、ほとんどのGeoIPデータベースは、私が実際にいる場所から約60マイル離れた場所にいると考えています。

また、コンピュータとサーバーの間に「 Hops 」がいくつあるか、またホップがどこにあるかを調べることで、サーバーからの距離を判断することもできます。

IPアドレスをホップデータやその他のソースデータ(システムの言語やタイムゾーンなど)と組み合わせて使用​​すると、場所をさらに絞り込むことができます。

したがって、個人のIPアドレスが220.123.321.234で、タイムゾーンがGMT + 9で、コンピューターが韓国語用に構成されている場合、その人が 韓国、ソウル にいることはほぼ間違いありません。

0
Andrew Lambert