ウェブサイトのための訪問者ジオロケーション
訪問者のブラウザから直接GET /v1/geoを呼び出し、その接続の利用可能な国、都市、タイムゾーン、地域情報を取得します。許可するオリジンを設定し、公開可能キーを追加して、レスポンスをどのように扱うかを決めてください。
リクエストは訪問者のブラウザから送信されます
GET /v1/geoは常に接続してきたクライアントの情報を返します。訪問者のブラウザから呼び出すことでその接続の位置データを取得できますが、アプリケーションサーバーから送信されたリクエストはそのサーバー自身の接続情報を返し、訪問者の情報ではありません。既にエンドユーザーのIPアドレスを持っていて、それをバックエンドで解決したい場合は、別のIPルックアップAPIをご利用ください。訪問者用キーは公開可能キーであり、ブラウザのコードに含まれることを前提としています—そのため実際の制御は、キー自体の秘匿性ではなく、そのキーに設定された許可オリジンのリストです。
強制的なリダイレクトではなく、提案として設計する
旅行者はある国のネットワークを利用しながら別の言語を好むことがあり、VPNは接続を全く別の場所に置くこともあります。訪問者が提案された言語・国・通貨を変更できる仕組みを用意し、毎回の訪問時に位置情報から再導出するのではなく、その選択を保持してください。
対象プランのみに含まれるセキュリティ情報
対象プランでは、レスポンスにリスト型のVPN/Tor/脅威指標が含まれることがあります。securityオブジェクトが省略されている場合、それはお使いのプランにこのフィールドが含まれていないことを意味し、そのネットワークが安全だと判定されたわけではありません。falseの値は利用可能なソースデータに一致がなかったことを意味し、問題がないことの証明ではありません。カバレッジは指標やIPバージョンによって異なります—例えば、IPv6のTor検知は現在実装されていません。
レスポンスに含まれる有用な情報
- country, region, city, latitude, longitude
- 接続元リクエストのおおよその位置情報です。デバイスやGPSの位置情報ではなく、特定の人物の所在を示す証拠でもありません。
- timezone, currency, callingCode
- 解決された位置情報から導出される地域情報で、初期提案として役立ちます。
- asn, asOrganization
- 利用可能な場合、接続元のネットワークとその運営者です。組織名は個人の身元を示すものではありません。
- security
- お使いのプランに含まれていない場合は完全に省略されます。含まれる場合:isVpn、isTor、isDatacenter、isThreat、isSanctionedNetwork—リスト型の指標であり、安全性を保証するものではありません。
最初のリクエストを追加する
ブラウザJavaScript
async function loadVisitorLocation() {
const response = await fetch('https://api.watch-ip.com/v1/geo', {
headers: { 'X-Api-Key': 'YOUR_PUBLISHABLE_KEY' },
});
if (!response.ok) {
throw new Error(`Visitor geolocation failed (${response.status})`);
}
const geo = await response.json();
return { country: geo.country ?? null, city: geo.city ?? null, timezone: geo.timezone ?? null };
}プレースホルダーを訪問者用キーに置き換え、そのキーに許可されたオリジンからページを実行してください。リクエストが失敗した場合やフィールドが欠落している場合に備え、サイトの既定の表示を利用できる状態にしておいてください。
よくある質問
これはデバイスの位置情報の利用許可を求めますか?
いいえ。このIPベースのリクエストはブラウザのデバイスGeolocation APIを使用しません—デバイスが提供する座標を要求するのではなく、接続から位置情報を推定します。ただし、結果をアプリケーションでどのように使用するかによって、プライバシーや同意に関する義務は依然として発生します。
/v1/geoにIPアドレスを渡せますか?
いいえ。このエンドポイントは常に接続元のクライアントの情報を返します。アドレスを指定したい場合は、バックエンドから/v1/lookup/{ip}を使用してください。
サーバーレンダリングされたリクエストで、なぜホスティングプロバイダーの位置情報が表示されるのですか?
そのリクエストにおいては、サーバーが接続元のクライアントとなります。訪問者向けのリクエストをブラウザのコードに移動するか、信頼できるエンドユーザーのIP情報源を使ってバックエンドからIPルックアップエンドポイントをご利用ください。
都市や座標は正確ですか?
いいえ。IPジオロケーションはその接続に関連付けられた推定値であり、個人の正確な位置ではありません。
ブラウザでシークレットキーを使用できますか?
いいえ。このエンドポイントには公開可能な訪問者用キーを使用し、シークレットのルックアップキーはバックエンド環境にのみ保管してください。
関連ページ
- IPルックアップシークレットキーを使い、バックエンドから指定したIPv4またはIPv6アドレスを解決します。
- GET /v1/geo リファレンス訪問者ジオロケーションエンドポイントの完全なフィールドリファレンス。
- JavaScriptガイドブラウザのJavaScriptから訪問者の位置情報をリクエストする。
- IPジオロケーションの精度IPジオロケーションで分かること・分からないこと、そして自分で評価する方法。
- IPジオロケーションとはIPジオロケーションが推定する内容、返されるフィールド、分からないこと。
- VPN・Tor検知対象プランで、訪問者とIP検索のレスポンスに含まれるリスト型のVPN・Tor・脅威ネットワーク指標。
- 料金訪問者向けAPIとルックアップAPIのプランと利用制限。
- 自分のIPアドレス現在の接続についてWatch-IPが解決するおおよその位置情報とネットワークを確認できます。