私は、IPv4 アドレスの最初の 3 つのオクテットを使用してユーザーの国、都市、緯度、経度などを判断する IP ジオロケーション ライブラリに取り組んでいます。
しかし、IPv6 アドレスを処理しないので、処理してほしいと思います。
IPv6 アドレスを変換して、IPv4 アドレスの最初の 3 オクテットに相当するものを取得する方法はありますか?それとも、完全に異なる ipgeo マッピングを必要とする、まったく異なる番号付けスキームに基づいていますか?
私は、IPv4 アドレスの最初の 3 つのオクテットを使用してユーザーの国、都市、緯度、経度などを判断する IP ジオロケーション ライブラリに取り組んでいます。
しかし、IPv6 アドレスを処理しないので、処理してほしいと思います。
IPv6 アドレスを変換して、IPv4 アドレスの最初の 3 オクテットに相当するものを取得する方法はありますか?それとも、完全に異なる ipgeo マッピングを必要とする、まったく異なる番号付けスキームに基づいていますか?
一般的な IPv6 の割り当ては、インターネット プロバイダー (多国籍企業の場合もある) への /32 (4 オクテット)、次に エンド サイト (通常はクライアント組織) への/48 (6 オクテット)です。委任されたブロックの IANA リストで開始点を取得できます。
これは、RIR のデータベースで見つかった登録のみを対象としています。エンド ユーザーへの割り当ては通常記録されないため、私の現在の住所から
2a01:e35:8bd9:8bb0:92b:8628:5ca5:5f2b
は、プロバイダーの本社がパリにあることがわかります (国営企業であるため、クライアントはフランスのどこにいてもかまいません)。
もう 1 つの例外は、通常は /48 である PI (プロバイダーに依存しない) 割り当てです。
また、IPv4 用のジオロケーションのデータベースは多数存在しますが、私の知る限り、IPv6 用のデータベースはありません。すべてを自分で行う必要があります。
要約すると、明らかに信じているよりも多くの作業が必要です。
ノアのコメントへの友好的な訂正 (6 月 3 日 7:57)--
MaxMind のクライアント サービス部門 (強調は私のもの) によると、「IPv6 は現在サポートされていません。将来的には実装する予定ですが、現時点では日付はありません。」
IPv6 は、IPv4 とはまったく異なるアドレッシング スキームを使用します。1 つの例外を除いて、IPv6 アドレスを IPv4 アドレスにマップする方法はありません。2002: で始まる IPv6 アドレスが表示される場合、そのアドレスは 6to4 アドレスです。おそらく使用されているものは多くなく、廃止されつつありますが、それらはIPv4 にマップ可能です。
パブリック IPv4 アドレスの各ユーザーは、IPv6 スペースの /48 (65536 サブネット) を使用できます。これらのアドレスは常に 2002 で始まります。次の 2 つの 16 進数は IPv4 アドレスです。したがって、2002:5389:1164: は、自分の Web サーバーの IPv4 アドレス (83.137.17.100) に対応します。
0x53 = 83
0x89 = 137
0x11 = 17
0x64 = 100
しかし、すべての「通常の」IPv6 アドレスは、IPv4 アドレスとはまったく関係ありません。少なくとも標準的な方法で。ISP は、IPv6 を顧客に展開するときに、IPv4 アドレスと IPv6 アドレスの関係を定義できます。でも、その関係はあなたにはわからないから、あなたには役に立たない……。
maxmind.com の地理位置情報サービスとライブラリは、IPv6 を正常に処理します。多分彼らのものはあなたのためのオプションです. (私は彼らと何の関係もありません。)
ウィキで多数の ipv6、アドレス、および遷移メカニズムを読むと、ipv4 を推測する可能性のある IPv6 アドレス パターンがいくつか見つかります (siit、ipv4-mapped ipv6、nat64、上記の 2002:* など)。そのうちの 1 つを開始します: http://en.wikipedia.org/wiki/IPv6_transition_mechanisms
これらのスキームが、通常の geo レポート、詐欺防止、またはインシデント検出を行うのに十分なほど普及しているとは考えていませんが、IPv6 geo ルックアップよりも、そのような推測された ipv4 アドレスの ipv4 geo ルックアップを確実に優先します (ipv4 db はより完全です)。
IPv6 地理情報に関する私の懸念は、信じられないほど多数のサブネットです。データベースが大きくなる (IP 範囲が増える) ことは予想されますが、端末の地理情報が同じ量の場合、データベースはより疎になり、ツリーが深くなると反復に時間がかかります (バイナリまたは基数ツリーを使用する実装の場合)。パフォーマンスコスト。私が知っている 128 ビットの big-bigint がないため、演算を使用するために、IP 範囲を持つ sql テーブルを使用する geo データベースもおそらく苦しむでしょう。
もう 1 つの懸念事項はモバイルです。私の間違いでなければ、ipv6 はローミングを容易にするように設計されています。携帯電話基地局を変更しても、IP を維持できます。都市、地域、または国を変更している場合でも。強いアドレス アフィニティが MAC アドレスの目的だったので、私は少し疑問に思います。IPアドレスは正確にルーティング目的で存在しますが、地理的位置の精度を損なうほど不変になる可能性があることは言うまでもありません.
アプリケーション レイヤー (たとえば、いくつかのジオ ロケーション ヘッダー) でのユーザー エージェント/ブラウザーのコラボレーションは、いたずら好きな人によってなりすましが可能であるとしても、将来的には可能性が高いと思います。
ジオロケーションが悪いですよね?インターネットは場所にとらわれず、ジオロケーションが重要で悪ではない何かに使用されるのを見たことがありません。つまり、私が見た唯一の優れたアプリケーション(言語の選択)は些細なものでした(同じように簡単にドロップダウンになる可能性があります)。多くの邪悪なアプリケーションが存在します(このビデオはあなたの国では利用できません。広告と追跡のために私の物理的な場所をターゲットにしています)このようなものが存在することを思いとどまらせることはできませんが、違法または少なくとも社会的に使用できないようにする必要があります。
これはまだ簡単にできる方法がないように見えるので、IPv4 ではできなかったことができるようになるかもしれません (*)。
立ち止まって、これが良い考えかどうかを自問することができます。
(*) または、実行された場合、動作しませんでした!