【发布时间】:2009-10-21 14:16:49
【问题描述】:
我想阻止所有非美国用户访问我的网站。我在前端使用 nginx,并且有一个 django 驱动的网站。
1) 我如何确定什么是美国 IP 地址?
2) 我应该在我的网络服务器还是在我的应用程序层中阻止它们?
【问题讨论】:
-
基于 IP 的地理定位失败。子网一直在被买卖。
标签: django ip-address
我想阻止所有非美国用户访问我的网站。我在前端使用 nginx,并且有一个 django 驱动的网站。
1) 我如何确定什么是美国 IP 地址?
2) 我应该在我的网络服务器还是在我的应用程序层中阻止它们?
【问题讨论】:
标签: django ip-address
您需要一个GEO location 提供程序。
有些是免费的,有些是在线检查,有些会为您提供清单或图书馆。
一般来说,您想要的准确性越高,您支付的费用就越多。
您执行此操作的准确度是有限度的。一些小国家的流量可能会通过美国或其托管在美国的名称服务器进行路由。一般来说,你不应该为美国客户得到太多的假阴性。
【讨论】:
我使用了 mod_geoip 并发现它在很大程度上但并不完全有效。 IP/国家数据库的准确性是一个问题,保持该数据库是最新的也是一个问题。我还发现,虽然它有助于减轻来自世界各地与我们网站内容无关的一些评论垃圾邮件和 DDOS 类型的查询,但它也产生了一些意想不到的后果。例如,有些人在海外度假时试图更新他们的网站列表,但被阻止了。 http://www.maxmind.com/app/mod_geoip
【讨论】: