2013-10-08 31 views
5

私がしようとしているのは、下のスクリプトで国コードに基づいて国をリダイレクトすることです。以下のコードは動作しません。いくつかの研究をすると、私は声明や声明を使用しなければならないと感じました。少なくとも、私は必要と思っています。あなたが見ることができるように、私は確認している多くの国があります。OR文の代わりに

<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script> 
<script language="JavaScript"> 

var country= geoip_country_code(); 

if(country = "UK","CA","DE","DK","FR","AU","SE","CH","NL","IT","BE","AT","ES","NO","IE","FI","GB","US")  
{ 
window.location.href='http://www.google.com'; 
} 
else 
{ 
window.location.href='http://www.yahoo.com'; 
} 
</script> 
+0

@JonathonReinhartサーバー側も迂回するのは簡単です。あなたのコメントのために – Brad

+2

感謝しますが、これは私が必要とするものに十分に良いでしょう。 – user2716614

+0

@JonathonReinhart重要なことは、セキュリティはここでは重要ではないということです。 IPアドレスによる領域ロックは、平均的なユーザーを超えて有効ではありません。しかも、彼はリダイレクトしています。 – Brad

答えて

12

あなたはこのようにそれを行うことができるはず:

var countryCodes = ["UK","CA","DE","DK","FR","AU","SE","CH","NL","IT","BE","AT","ES","NO","IE","FI","GB","US"]; 
var country= geoip_country_code(); 
if (countryCodes.indexOf(country) !== -1) 
{ 
    ... 
} 
+0

あなたの返信をありがとう、私は今それを試してみます... – user2716614

+0

@ブラッド良い点、私はそこに '!=='を持っていたはずです。 –

+1

@ BenS。 '!='や '!=='が使用されているかどうかは関係ありませんので、 '!='を使用する理由がないので '!='が優先されることをお勧めします。 – RobG

0

あなたのような何かを行うことができます:

var country = 'US'; 
var countries = 'UK CA DE DK FR AU SE CH NL IT BE AT ES NO IE FI GB US'; 

if (countries.match(country.toUpperCase())) { 
    // matched 
} else { 
    // no match 
} 

しかし、クライアントがその起源を偽装することは非常に簡単です。