独自のバイナリ IP ライブラリ ファイルを作成する_PHP チュートリアル
1.
IP アドレス クエリ機能を使用したことがある友人なら、Innocence IP データベースについて聞いたことがあるはずです。Innocence IP データベース クエリは次のようなものです。
IPに基づいてユーザーのホームテキストを検索して表示するだけの場合は、IPライブラリのルールに従って二分検索を実行して表示するだけです。 (フォーマット詳細説明)
しかし、IP に基づいて場所のテキスト説明を取得し、それを既存の行政区域データ テーブルにさらに関連付ける必要がある場合はどうすればよいでしょうか?
一見するとどちらも可能なはずですが、効率はどうでしょうか?ひどい!特に、同時実行性がわずかに高いアプリケーションに直面すると、これらの方法はいずれもテストに耐えることができません。
Innocence IP ライブラリ (他の IP ライブラリも可) のデータを独自の領域データに関連付け、Innocence IP ライブラリの領域記述を独自の領域 ID に置き換えて、最終的に独自のバイナリ IP ライブラリ ファイルを作成してみてはいかがでしょうか?
本題に入り、純粋な IP ライブラリ データに基づいて独自のバイナリ IP ライブラリ ファイルを作成する方法を見てみましょう。
注: この記事では一般的なアイデアのみを説明しており、詳細なコードはありません。ありがとうございます2.準備
データの 2 つの部分を準備する必要があります:
1. Innocence IP ライブラリの解凍された txt ファイル。
Innocence IP ライブラリをダウンロードすると、ip.exe ツールがあり、上記の解凍を使用して生成できます。
生成されたデータは図1-1に示すとおりで、私のバージョンでは約444,290のエントリがあります。
図1-1
2. 独自の国、州、市のカスケード データ テーブル。
これはインターネット上にもっとあるはずです。自分でインポートすることもできます。テーブル構造は同様です(area_id、area_level、area_name、area_pid)。それぞれエリアID、エリアレベル、エリア名、親エリアIDを表します。
もちろん、自分で別の構造を使用することもできますが、今回の処理には影響しません。
3.プロセス
データはすでに利用可能です。次に、生成する必要がある IP ライブラリの構成を計画しましょう。
タイトルからわかるように、生成する必要がある IP ライブラリは通常のテキスト ファイルではなく、バイナリ データ パケットです。では、IP ライブラリのファイル構造はどうあるべきでしょうか。
写真の通り:
私たちの構造は次のようであることがわかります:
- 頭。ファイルの最初の 8 バイトにあります。最初の 4 バイトは 32 ビット整数を格納し、その値はファイル内のデータ部分の先頭の位置です。最後の 4 バイトも 32 ビット整数を格納し、その値はファイルの末尾の位置です。ファイル内のデータ部分
- 件名データ部分。 N 個の固定構造体で構成され、各構造体は 12 バイトであり、IP 範囲データ (ip_start、ip_end、area_code) です。構造体の 3 つの部分も、それぞれ 4 バイトの 32 ビット符号付き整数です。 (エリアコードが小さい場合は1文字でも可)
IPデータパケットの構造が決定されたので、次のステップはそれを段階的に処理することです。
1. IP テキスト ファイルの内容を 1 つずつ読み取り、IP を 32 ビットの符号付き整数 (カスタマイズされた ip2long) に変換し、地域テキスト分析を通じて最終的な領域を取得します
a. IP テキスト ファイルの各行の規則は、最初の 15 バイトが IP 開始アドレス、最後の 15 バイトが IP 終了アドレス、最後が地域テキストの説明です。
b. IP を 32 ビットの符号付き整数に変換するのは 4 バイトだけであり、
PHP 関数 ip2long が 32 ビット システムと 64 ビット システムで異なる値を持つという問題が解決されます。新しい関数は次のとおりです。リーリー もちろん、独自の PHP 拡張機能を開発することもできます。詳細については、こちらを参照してください: http://www.cnblogs.com/iblaze/archive/2013/06/02/3112603.html
c. 図に示すように、地域はすべてのレベルで地域の名前を取得する必要があります (州、市、郡、地区などを含みます。外国では国のみが保持されます)。
誰もが異なるリージョンを使用する可能性があるため、プロセスのこの部分をうまく説明できませんが、一般原則としては、まず最下位レベルのリージョン名に基づいて ID を見つけることです (実際の状況によっては、都市と郡) クラスを削除します)、そうでない場合は、上位レベルを検索し、地域 ID が取得されるまでこのようにループします。
リージョンIDが見つからない場合は不明として分類されます。
3. 圧縮、圧縮ファイルは約5.08Mです圧縮ルールは図の通りです。formatの値はpack:
のtypeに対応します。
ここで注意しなければならない点があり、IPは符号付き32ビット整数に変換されるため、128.0.0.0以降のIPは負の数となるため、負の数を判断してIPライブラリの前に置く必要があります。結局のところ、二分探索を使用するには順序付けされたデータが必要です。
4. IP を見つけるには、次のような 44W のデータを最大 19 回検索するだけで済みます。
5効果を確認する簡単な圧力テスト
。 a. 腹圧テストには、このマシンの腹筋を使用します
b. テストスクリプトはLinuxテストマシン(普通のPC)上にありますc. ストレステストのスクリプトは次のとおりです。
d. ストレステストステートメント: ab -n 10000 -c 50 http://192.168.206.71/ipdata.php?type=php
パフォーマンスはかなり良いです。はは
一緒に話し合える良い方法はありますか? ありがとうございます〜
http://www.bkjia.com/PHPjc/440306.html
www.bkjia.com

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









パソコン上のフォルダーを削除または解凍するときに、「エラー 0x80004005: 不明なエラー」というダイアログ ボックスが表示されることがあります。この状況はどう解決すればよいでしょうか?エラー コード 0x80004005 が表示される理由は実際にはたくさんありますが、そのほとんどはウイルスによって引き起こされます。DLL を再登録して問題を解決できます。以下では、エディターがエラー コード 0x80004005 の処理体験を説明します。 。一部のユーザーは、コンピュータの使用時にエラー コード 0X80004005 を表示されます。0x80004005 エラーは主に、コンピュータが特定のダイナミック リンク ライブラリ ファイルを正しく登録していないこと、またはファイアウォールがコンピュータとインターネット間の HTTPS 接続を許可していないことが原因で発生します。それでどうですか

Quark Netdisk と Baidu Netdisk は現在、ファイルの保存に最も一般的に使用されている Netdisk ソフトウェアです。Quark Netdisk 内のファイルを Baidu Netdisk に保存したい場合は、どうすればよいですか?今回は、Quark Network Disk コンピュータから Baidu Network Disk にファイルを転送するためのチュートリアル手順を編集者がまとめたので、その操作方法を見てみましょう。 QuarkネットワークディスクファイルをBaiduネットワークディスクに保存するにはどうすればよいですか? Quark Network Disk から Baidu Network Disk にファイルを転送するには、まず Quark Network Disk から必要なファイルをダウンロードし、次に Baidu Network Disk クライアントでターゲット フォルダーを選択して開きます。次に、Quark Cloud Disk からダウンロードしたファイルを Baidu Cloud Disk クライアントによって開かれたフォルダーにドラッグ アンド ドロップするか、アップロード機能を使用してファイルを Baidu Cloud Disk に追加します。アップロードが完了したら、Baidu Cloud Disk にファイルが正常に転送されたかどうかを必ず確認してください。それでおしまい

最近、多くのネチズンが編集者に「hiberfil.sys ファイルとは何ですか?」と尋ねました。 hiberfil.sys は C ドライブのスペースを多く消費し、削除される可能性がありますか?エディターは、hiberfil.sys ファイルを削除できることを通知します。以下で詳細を見てみましょう。 hiberfil.sys は Windows システムの隠しファイルであり、システム休止状態ファイルでもあります。通常、C ドライブのルート ディレクトリに保存され、そのサイズはシステムに搭載されているメモリのサイズと同等です。このファイルはコンピュータが休止状態になっているときに使用され、リカバリ中に以前の状態にすばやく復元できるように、現在のシステムのメモリ データが含まれています。そのサイズはメモリ容量と等しいため、より多くのハードドライブスペースを占有する可能性があります。冬休み

中国で最も人気のあるショートビデオプラットフォームの 1 つとして、Douyin は多くのユーザーとファンを魅了しています。 TikTokではファンと友達という言葉をよく聞きますが、TikTokのファンと友達の違いは何かご存知ですか?この質問については、以下で詳しく説明します。 1. Douyin のファンと友達の違いは何ですか? TikTok では、ファンとはあなたのコンテンツに興味を持ち、あなたをフォローすることを選択した人々です。彼らは、「いいね!」やコメントなどを通じてあなたと対話し、仮想的なつながりを確立します。一方、友人とは、実生活でお互いを知り、実際の社会的関係を持っている人々です。 Douyin のようなソーシャル プラットフォームでは、ファンや友人との交流の方法や深さはさまざまですが、それらはすべてソーシャル ネットワークの構築と維持において重要な要素です。ファンの数はあなたのアカウントをフォローしている人の数を指します

1. PPT を起動し、新しい空の文書を作成し、すべてのテキスト ボックスを選択して削除します。 2. [図形の挿入] コマンドを実行し、ドキュメント内で四角形をドラッグし、図形を黒で塗りつぶします。 3. 長方形をドラッグして長くし、[図形の挿入] コマンドを実行して小さな正方形をドラッグし、塗りつぶしの色を白に設定します。 4. 小さな正方形をフィルムの両側に上下が均等になるように 1 つずつコピーして貼り付け、ctrl+a ですべて選択した後、右クリックして [グループ] を選択します。 5. [挿入-図] コマンドを実行し、ポップアップ ダイアログ ボックスで挿入する図を見つけ、クリックして開き、図のサイズと位置を調整します。 6. 手順 5 を繰り返して、残りの画像を挿入して設定し、フィルム画像を形成します。 7. フィルムを選択し、アニメーション追加コマンドを実行します。

MySQL における .ibd ファイルの役割とそれに関連する注意事項の詳細な説明 MySQL は人気のあるリレーショナル データベース管理システムであり、データベース内のデータは別のファイルに保存されます。このうち、.ibd ファイルは InnoDB ストレージ エンジンのデータ ファイルであり、データとインデックスをテーブルに保存するために使用されます。この記事では、MySQL における .ibd ファイルの役割を詳細に分析し、読者の理解を深めるために関連するコード例を示します。 1. .ibd ファイルの役割: データの保存: .ibd ファイルは InnoDB ストレージです

Linux オペレーティング システムでファイルを操作するには、開発者がファイル、コード、プログラム、スクリプトなどを効率的に作成および実行できるようにするさまざまなコマンドとテクニックを使用する必要があります。 Linux 環境では、拡張子「.a」を持つファイルは静的ライブラリとして非常に重要です。これらのライブラリはソフトウェア開発において重要な役割を果たし、開発者が複数のプログラム間で共通の機能を効率的に管理および共有できるようにします。 Linux 環境で効果的なソフトウェア開発を行うには、「.a」ファイルの作成方法と実行方法を理解することが重要です。この記事では、Linux の「.a」ファイルのインストールと構成方法を包括的に紹介します。Linux の「.a」ファイルの定義、目的、構造、作成および実行方法について見てみましょう。 Lとは何ですか

PPTを作成するとき、アニメーション効果を使用すると、アニメーション効果を使用しない場合よりも生き生きとしたかわいらしいものになります。アニメーション効果を追加すると、人々がこのPPTを見たがる可能性があるため、PPT用のアニメーション効果を作成する方法を学ぶ必要があります。次に、PPTにアニメーション効果を追加する方法を詳しく紹介します。引き続き以下の手順を読んで注意深く検討してください。きっと役立つと思います。まず、自分で作成した PPT を開くと、この PPT には現在アニメーション効果がまったくないことがわかります (下の図の赤い矢印で示すように)。 2. 次に、画像にアニメーション効果を追加する必要がありますが、まず画像を選択し、メニューバーの[アニメーション]ボタンをクリックします(下図の赤丸部分)。 3. 次に、アニメーション内をクリックします。
