2011-01-23 11 views
0

ユーザーが英国からブラウズしているのか、英国のブラウザを使っているのかを知りたい。もしそうでなければ、私は彼らが米国の訪問者であると考えることができます。ユーザーの国コードを簡単に取得する方法はありますか?

私は自分のIPをデータベースで調べることができますが、これは少し遅く、私はむしろUser-agentか他のHTTPヘッダーから見つけ出したいと思います。

いつも正しいとは限りませんし、あいまいさがあります(英国で米国のコンピュータを使用しているなど)。

+0

世界には2つの国しか存在しません。私たちに知らせてくれてありがとう。 –

+0

うん、それは来ていたことを知っていた。私は、私のアプリケーションの目的のためにこの仮定を安全に行うことができると言いました。 – Matt

答えて

2

Accept-Languageヘッダーフィールドを確認できます。

14.4受け入れ言語

のAccept-Languageリクエストヘッダ フィールドが受け入れるのに似ているが、 は、要求に対する応答として好ましい自然言語 のセットを制限します。言語タグはセクション3.10の と定義されています。

Accept-Language = "Accept-Language" ":" 
        1#(language-range [ ";" "q" "=" qvalue ] 

) 言語範囲=((1 * 8ALPHA×( " - " 1 * 8ALPHA))|各言語範囲を 関連付けられた品質値を与えられてもよい

"*")は は、その範囲で指定された言語 のユーザーの の推定値を表します。品質値 のデフォルトは「q = 1」です。例えば、

Accept-Language: da, en-gb;q=0.8, en;q=0.7 

は意味します:「私はデンマークを好むが、 イギリス英語と他の種類の英語の を受け入れます。」言語範囲は、タグが と正確に等しい場合、またはプレフィックスに続く最初の タグ文字が " - "であるように、タグの接頭辞が と正確に等しい場合、 言語タグと一致します。 Accept-Languageフィールドに がある場合は、特別な範囲「*」は、 フィールドにある の範囲に一致しないすべてのタグと一致します。

Note: This use of a prefix matching rule does not imply that 
    language tags are assigned to languages in such a way that it is 
    always true that if a user understands a language with a certain 
    tag, then this user will also understand all languages with tags 
    for which this tag is a prefix. The prefix rule simply allows the 
    use of prefix tags if this is the case. 

のAccept-Languageフィールドによって言語タグに を割り当て言語品質係数は 言語タグに一致するフィールドの中で最も長い、言語範囲 の品質値です。 に言語の範囲がない場合、フィールドはタグと一致し、 割り当てられた言語品質係数は0です。 が要求に含まれていない場合、サーバ

は、すべての言語が であるとみなすべきです(SHOULD)。 Accept-Languageヘッダーが存在する場合、 と割り当てられたすべての言語は、0より大きい品質係数が です。

は、これは、ユーザーの 期待は、すべての要求で ユーザーの 完全な言語的な好みで のAccept-Languageヘッダを送信するために、プライバシーに反するかもしれません。この問題の の説明については、 のセクション15.1.4を参照してください。

明瞭度は、個々のユーザーに 非常に依存しているとして、それは は、クライアント・アプリケーション は、ユーザへの言語的 好みの選択肢を利用できるようにすることをお勧めです。 の選択肢が利用できない場合は、 Accept-Languageヘッダーフィールドを としなければなりません。

Note: When making the choice of linguistic preference available to 
    the user, we remind implementors of the fact that users are not 
    familiar with the details of language matching as described above, 
    and should provide appropriate guidance. As an example, users 
    might assume that on selecting "en-gb", they will be served any 
    kind of English document if British English is not available. A 
    user agent might suggest in such a case to add "en" to get the 
    best matching behavior. 
1

私は、データベース内の自分のIPを検索することができますが、これはありません、それはありません

少し遅いです。


Accept-Language HTTP headerを使用して優先言語を検出できます。

関連する問題