4

MaxMind の GeoLite2 Country CSV から SQL を使用して IP4 アドレスを検索する方法を知っている人はいますか?

MaxMind の無料の GeoIP データを長年使用しており、GeoLite2 データにアップグレードしたいと考えています。ブロックとロケーション データを MySQL テーブルにロードしましたが、IP4 アドレスが該当するアドレス範囲を特定する方法がわかりません。古い形式には、各ブロックの開始/終了番号がありました。新しいフォーマットには開始番号しかないようです。

私はすでに MaxMind の開発者向けドキュメントを調べたり、Google で検索したりしましたが、新しい形式を照会する方法に関する情報が見つからないようです。私はそれが明白であると確信しており、暫定的にそれを理解した場合、この投稿を編集します.

おそらく、IP4アドレス以上の最初のブロックエントリとLIMIT 1を見つけなければならないことに感謝します

このデータは、Web アプリケーションの外観と、SQL で直接クエリを実行してレポートを生成するために使用します。そのため、通常、Perl コードと純粋な SQL の両方でルックアップを実装できるようにする必要があります。

古いデータではフランスからのように見える日本人訪問者の面白い結果が見られるので、アップグレードしています。

どうもありがとう

4

2 に答える 2

3

Geolite2 CSV で使用されるアドレス形式には、ブロック IP アドレスの開始と、その後にブロック IP アドレスの終了に変換できるプレフィックス長 # が含まれます。

(やや紛らわしいことに、Maxmind は、このフィールドにラベルを付けるために、受け入れられている IPv6 用語である「Prefix_Length」の代わりに「Network_Mask_Length」を使用しています。)

Geolite2 CSV のブロック フィールド レイアウト:

network_start_ip,network_mask_length,geoname_id,registered_country_geoname_id,re
presented_country_geoname_id,postal_code,latitude,longitude,is_anonymous_proxy,i
s_satellite_provider

例:(Geolite2-Country-Blocks.csv から抽出されたレコード)

::ffff:81.248.136.0,120,3578476,3017382,,,,,0,0

上記の例では、ブロックに最後に割り当てられた IPv4 アドレスは?

First IP address: 81.248.136.0
Prefix_Length/Network_mask_Length: 120
Last IP address: 81.248.136.255

次の URL は、特定の Prefix_Length で使用可能な IP アドレスの数をすばやく調べるのに便利です。

http://www.gestioip.net/cgi-bin/subnet_calculator.cgi

__フィリップ

于 2014-02-25T15:04:59.753 に答える