1

我是一家加拿大公司。我有我的主要网站,所有产品均以美元计价,但随后使用此重定向,来自加拿大的任何流量都将重定向到我的另一个镜像网站,所有产品均以加元计价。

这是我在美国网站页面的 HEAD 中使用 Maxmind GeoIP Lite 的脚本。它完美地工作。

<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 或位置重定向我的异常?我用谷歌搜索了它,没有遇到过类似的事情。很想找到解决这个问题的方法。谢谢。

4

3 回答 3

0

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

于 2012-11-29T13:37:27.540 回答
0

我可能会将检查转移到服务器端,但如果失败,就会给自己一个 cookie(基于 jQuery 的示例)。

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

然后给自己那个 cookie,或者创建一个秘密 URL 来为你设置它。这样一来,无论您的 IP 是什么,您都可以使用它,并轻松地将其发送给同事。显然,您的实现不是安全问题,而是价格展示问题,所以我不担心人们会伪造它(因为这些人可以很容易地禁用您现在拥有的东西)。


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

于 2012-12-04T16:58:48.713 回答
0

在 php 中,您可以使用 $_SERVER['REMOTE_ADDR'] 来获取您的 IP。要在 javascript 中获取远程 IP,请参阅 如何仅使用 javascript 获取客户端的 IP 地址?

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

于 2012-11-29T13:43:51.800 回答