- 締切済み
クライアントの国を判断したい
日本以外の国からのアクセスがあった場合、別のページに飛ばしたいのですが、国の判断方法がわかりません。どなたかご教授よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Bonjin
- ベストアンサー率43% (418/971)
IPアドレスは国ごとに割り当て範囲が決まっていますので、IPアドレスから国を判定することは出来ます。 下記のページで国毎に使用しているIPアドレスの範囲はわかると思います。 http://www.ipaddresslocation.org/ip_ranges/get_ranges.php しかし、日本にある公開プロキシなどを利用されると他の国からもアクセス出来てしまいます。 >httpリクエストのaccept-languageから判断できないでしょうか? これは利用者が使用しているブラウザやPCに依存するのでアクセス元の国を判断することはできません。たとえば、アメリカで日本語PCを使っている場合のaccept-languageはjaになりますし、日本で英語PCを使っている場合のaccept-languageはenになります。 結局は、別ページに飛ばす目的は何なのかに依りますので、その辺りを考えた上で判定方法を選んでみてください。
- fxdwg99
- ベストアンサー率45% (43/94)
Accept-Languageは「欲しい言語」を示すものなので、国の判断とは 意味合いが異なります。アメリカに出張している日本人であれば アクセスはアメリカからですが、Accept-Languageはjaになりますので。 IPアドレスベースでの判断はほぼ不可能で、日本に割り当てられている IPアドレスのリストをうまく作ったとしても、日本内のPROXY経由で アクセスされたら、海外からのものかどうかが判断できなくなります。
- Yeti21
- ベストアンサー率47% (396/830)
ホストのドメインなどからは実質判断できませんし、 無理だと思います。
補足
早速のご回答ありがとうございます。 httpリクエストのaccept-languageから判断できないでしょうか?
補足
現在の日本語ホームページの英語版を考えています。 できればトップページは同じURLでアクセスしたいなあ、という感じです。 >ブラウザやPCに依存 accept-languageがja以外の人のほとんどは、日本語読めないでしょうし、ja以外を使用している日本人は多分、英語読めますよね。 最大公約数的にいきます。 ありがとうございました。