3

こんにちは、

ユーザーの都市に対応する Web ページの 1 つにユーザーをリダイレクトしたい (場所はユーザーの IP アドレスに基づいており、いくつかの IP ロケーション データベースを使用している)。

私の質問は、それを高速に動作させる方法は? たとえば、ウェブサイト gropoun では、ユーザーが訪問するたびに、即座にその都市のページに移動します。

ありがとう。

編集:PHPを使用しています

4

4 に答える 4

2

これをサーバー側とクライアント側のどちらで行いますか? クライアント側 (つまり、javascript を使用) の場合、多くの geoip サービスの 1 つを使用できます。特に Yahoo! の YGL は

また、ほとんどの言語またはフレームワークを使用してサーバー側で行うこともできます。サード パーティの geoip プロバイダーに対して API またはサービスの呼び出しを行うことも、データをデータベースにロードして独自のルックアップを行うこともできます。

また、すべての IP アドレスを特定できないため、地域または郵便番号を「デフォルト」にする必要があります。たとえば、私が現在取り組んでいる 1 つの Web アプリケーションには 95% の米国ユーザーがいて、デフォルトで国の地理的中心である 66952 に設定されています。

于 2010-09-20T15:04:03.243 に答える
1

ルックアップサービスを使用してサーバー側のいくつかのクライアントに対してこれを行いましたhttp://ipinfodb.com/ip_location_api.php.

冗長なルックアップを行わないように、IP アドレスと場所をデータベースに保存することを忘れないでください。タイム ゾーン データを使用して、訪問者の地域を特定しました。

于 2010-09-20T15:15:32.263 に答える
1

後で httpRequest からユーザー ip を決定する必要があります。たとえば、geoipなどのデータベースを使用します。

于 2010-09-20T15:02:25.057 に答える
1

キャッシュ、キャッシュ、すべてをキャッシュします。ルックアップを IP テーブルにキャッシュし、個々のユーザーのセッションまたは Cookie の結果をキャッシュし、ページのレンダリングされたローカリゼーション情報部分 (または少なくともクエリ集中部分) をキャッシュします。

提供できる詳細は他にもありますが、それはすべて、ボトルネックが何であるかによって異なります。(結局のところ、ローカライズされた情報のレンダリングにボトルネックがある場合、ルーティング側で複雑なキャッシュを実装しても意味がありません。これは、DB 呼び出しの実行に約 0.5 秒かかるためです)。アプリケーションのボトルネックがどこにあるのか、どこにあるのかはわかりません。最初にプロファイルを作成する必要があります。次に、プロファイラーの指示に基づいて最適化します。

于 2010-09-20T15:05:00.123 に答える