我的IP地址的Maxmind GeoIP重定向异常

时间:2012-11-29 13:31:07

标签: javascript geoip maxmind

我是加拿大公司。我的主网站上的所有产品都是美元,但随后使用此重定向,来自加拿大的任何流量都会重定向到我的其他镜像网站,其中所有产品的定价均为CND $。

这是我在Maxmind GeoIP Lite的美国网站页面的HEAD中使用的脚本。它运作得很好。

<script language="JavaScript" src="http://j.maxmind.com/app/country.js" type="text/javascript"></script>

<script language="JavaScript" type="text/javascript">// <![CDATA[
if(geoip_country_code() == "CA"){
    document.write("");
    window.location = 'http://www.myCanadaianWebsite.com';
}
// ]]></script>

唯一的问题或烦人的事情是,自从我位于加拿大以来,我很难自己检查和测试美国网站。每当我想查看我的美国网站时,我不得不从我的美国网页上删除该脚本。然后,当我看完之后,我重新粘贴它。

有没有办法可以为我的脚本添加一个不会根据我的IP或位置重定向的异常?我用Google搜索过,并没有遇到过类似的事情。很想找到解决这个问题的方法。 感谢。

3 个答案:

答案 0 :(得分:0)

您可以使用服务器端代码根据IP选择性地输出脚本,或者您可以使用像Charles Proxy这样的工具替换您自己的脚本,其中http://j.maxmind.com/app/country.js具有硬编码“这是美国”其中的数据。

答案 1 :(得分:0)

在php中,您可以使用$ _SERVER ['REMOTE_ADDR']来获取您的IP。 要在javascript中获取远程IP,请参阅 How to get client's IP address using javascript only?

我建议改为以下解决方案: 安装允许您设置或取消设置cookie的脚本:请参阅此处了解文档: http://www.markusnordhaus.de/2012/01/20/using-cookies-in-javascript-part-1/

答案 2 :(得分:0)

我可能会将检查转移到服务器端,但是没有给自己一个cookie(基于jQuery的示例)。

if(geoip_country_code() == "CA" && $.cookie('pretendimamerican') === null) { 
  //Redirect
}

然后只是给自己那个cookie,或者制作一个秘密的URL来为你设置它。这样,无论您的IP如何,都可以使用它,并轻松地将其发送给同事。很明显,你的实现不是一个安全的东西,而是一个价格介绍的东西,所以我不关心人们伪装它(因为那些人​​可以很容易地禁用你现在得到的东西)。


在相关的说明中,如果您的测试变得更加先进,我创建了一家公司来帮助人们使用代理测试他们的GeoIP应用程序:https://wonderproxy.com/