4

私は見てみましたが、GeoIPのC++バージョンを見つけることができません。Cでバージョンがあることは知っていますが、Micosoft Visual Studio 2012C++で動作させることができないようです。

私が試してみました:

それで、

  1. GeoIPC ++バージョンは存在しますか?
  2. C ++のGeoIPのような国へのIPを行う別のライブラリはありますか?
  3. GeoIPをC++で動作させる方法に関するチュートリアルはありますか?

すべての質問で申し訳ありませんが、私は見て、見て、解決策を見つけることができないようです。

4

2 に答える 2

3

パーティーに遅れましたが、最近MaxMindGeoIPdb用のC++APIを作成しました。私はそれをWindowsでテストしませんでした、私はそれをLinuxで実行しただけです、しかしそれは間違いなくLinux特有ではありません。

私はそれをGeoLite2++と呼びました。ここで見つけることができます: https ://www.ccoderun.ca/GeoLite2++/api/

Ubuntuのソースtarballファイルと.debファイルは次のとおりです: https ://www.ccoderun.ca/GeoLite2PP/download/?C = M; O = D

ソースコードの例:

#include <GeoLite2PP.hpp>
...
GeoLite2PP::DB db( "/opt/stuff/GeoLite2-City.mmdb" );
std::string json = db.lookup( "216.58.216.163" );
std::cout << json << std::endl;

出力例:

{
    "city" : 
    {
        "names" : 
        {
            "de" : "Mountain View",
            "en" : "Mountain View",
            ...

個々のフィールドを取得するのではなく、レコード全体をJSON文字列として取得するなど、さらに多くのことが含まれます。

単一のフィールドを取得する方法を示す例:

GeoLite2PP::DB db("GeoLite2-City.mmdb");
std::string city = db.get_field( "65.44.217.6", "en",
    GeoLite2PP::VCStr { "city", "names" } );

中央クラスについては、 https ://www.ccoderun.ca/GeoLite2++/api/classGeoLite2PP_1_1DB.htmlで説明されています。

于 2016-11-10T02:51:25.907 に答える
2

GeoIPは、データを毎日(または毎月)更新するオンラインデータベースです。

また、アプリケーションの横にIPを場所にマッピングするための大きなオフラインデータベースを用意することもできます(定期的に最新の状態に保つ必要があります)。

GeoIPは特定のプログラミング言語にバインドされていないため、Webサービスメカニズムを使用してこのデータベースに接続できます。TCP / HTTPリクエストでオンラインサービスに接続し、データを取得するだけです。

HTTP APIでは、一連のパラメーターをHTTPGETまたはPOSTとして渡す必要があります。結果は、以下に示す単純なテキスト形式で返されます。

私たちはいくつかの異なるサービスを提供しており、それぞれがIPアドレスに関する異なる量の情報を提供しています。

于 2013-03-26T07:56:52.247 に答える