57

IPアドレスを使用してクライアントの場所とネットワークに関する情報を見つけるためのnode.jsモジュールがいくつか見つかりました。

要件:

  1. 場所 - 国、都市、州、緯度、経度など

  2. ネットワーク - インターネット サービス プロバイダー、インターネット接続の種類、インターネット速度など。

  3. データの正確性 - 最大限の可能性。

注:サーバー側のソリューションを探しています。

上記のモジュールはmaxmind dataを使用します。また、maxmind のデータ精度についても読みました。

上記のnode.jsモジュールを選択するのに少し混乱しています。私の要件を満たす情報を見つけるために利用できるより良いnode.jsフレームワーク、またはnode.jsに移植できる他の言語プラグインがあるかどうかを知りたいです。

どんなアイデアも素晴らしいでしょう。

4

3 に答える 3

51

IP ベースの地理位置情報を使用することは可能ですが、あまり正確ではありません。そのため、ブラウザー内で HTML5 geolocation API を介してユーザーの位置を取得し、必要に応じてサーバー側にフォールバックするなど、ハイブリッド アプローチを検討することをお勧めします。

node.js で利用できる最もよく使用される 2 つの geoip/-location モジュールを調べましたが、どちらも MaxMind が提供するデータセットを使用しています。私の知る限り、これらのデータベースを手動で最新の状態に保つ必要がありますが、これは明らかにダウナーです。そのため、月に 1 回データベースを更新する小さな同期サービス/スクリプトを作成することを検討してください。(MaxMinds の無料ソリューションの詳細については、こちらを参照してください)。

kuno/GeoIPは GeoIP バインディングであるため、中心部では libGeoIP C ライブラリを使用しています。これは問題ありませんが、純粋な JavaScript 実装bluesmoon/node-geoipが提供するほど移植性が高くない可能性があります。どちらも問題ありません。どちらのライブラリが好きかはあなた次第です。パフォーマンスに関しては、いくつかのベンチマークを実行する必要があります (このトピックが重要な場合) … どのタイプのモジュール (C バインディング/ネイティブ) が高速になるかという質問に対する一般的な答えはありません。

数ドルを費やす意思がある場合は、MaxMinds Web Serviceを調べることもできます。これは単純な REST API であり、最も正確な方法です。ドキュメンテーションは非常に優れているため、それを使い始めることは問題ありません。

于 2013-05-23T13:32:53.827 に答える
29

IPを取得すると、いつでも外部サービスを呼び出して、freegeoip.netなどの位置情報を取得し、リクエストモジュールを使用できます.

(ip, location) ->
  url = 'http://freegeoip.net/json/' + ip
  request.get url, (error, response, body) ->
    if !error && response.statusCode == 200
      data = JSON.parse body
      location data

ネットワーク情報については、解決策はありませんが、探しています。

于 2013-05-29T17:46:24.090 に答える