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

Posted

技术标签:

【中文标题】我的 IP 地址的 Maxmind GeoIP 重定向异常【英文标题】:Maxmind GeoIP redirect exception for my IP address 【发布时间】:2012-11-29 13:31:07 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

您可以使用服务器端代码根据 IP 有选择地输出脚本,或者您可以使用 Charles Proxy 之类的工具将您自己的脚本替换为 http://j.maxmind.com/app/country.js,该脚本在它。

【讨论】:

【参考方案2】:

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/

【讨论】:

【参考方案3】:

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

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

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


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

【讨论】:

以上是关于我的 IP 地址的 Maxmind GeoIP 重定向异常的主要内容,如果未能解决你的问题,请参考以下文章

MaxMind GeoIP 从允许一个 IP 的国家/地区重定向用户

PHP 从 IP 地址获取位置 MaxMind GEOIP

php maxmind geoip 异常ip

GeoIP 重定向循环 - 如何解决?

MaxMind 的 GeoIP 数据库

maxmind free geoip DB返回错误的国家/地区