2011-04-15 108 views
1

我有一个网站,我需要在一个国家部署它,例如黎巴嫩。换句话说,任何来自其他国家的任何请求都不应该被回应。在一个国家部署网站

我想我可以使用请求的IP地址,并知道它是从哪个国家生成的。我怎样才能在C#中做到这一点。

+3

这是失败的。也是一个愚蠢/相关:http://stackoverflow.com/questions/2111246/how-to-limit-web-site-access-to-usa-or-north-america-only – 2011-04-15 12:12:19

+0

一些用户可能会在黎巴嫩使用代理IP的范围表明他们在别的地方。你为什么想限制它?即使你出国旅行,想要访问你的网站,不是吗? – 2011-04-15 12:20:42

+0

因为这几乎是不可能实现的,所以你可以只用黎巴嫩方言写所有你的网站,它不会阻止其他国家连接,但有威慑力量:-) – hornetbzz 2011-05-20 19:55:59

回答

5

我想我可以用请求的IP地址,并知道从哪个国家,它产生

不,你没有。错觉。

  • 你不能知道哪个国家的请求来自frmo,只有在IP地址注册的地方,差不多。如果你在这方面很聪明,更多的信息可以解析反向dns有时候。
  • 这忽略了一些可能使用中央地址池的大型国际提供商,例如VPN提供商等。或者卫星电话提供商(可能在国外使用但不在此居住)。

最后,这将是相对有限的使用,取决于你的确切busienss情况下,它可能是完全无用的。

如何在C#中执行此操作。

编程。

获取GeoIP数据库(在谷歌中查找术语,提供者将显示,否则与“maxmind”结合使用)。根据数据库查询IP。决定如何处理“可能”的情况,如国际业务。示例... IBM具有地址空间。他们用它来做所有的运动。你想如何处理这个?

+0

也考虑相反。具有非黎巴嫩IP的Lebanease用户,或许他们正在使用安全的VPN提供商保护他们的身份。 www.o2.co.uk网站的商店可以做到这一点,它在很多情况下都是工作的。 – Jodrell 2011-04-15 12:18:46

+0

更简单。我的办公室(波兰)通过公司的VPN将所有流量传输到德国的公司集群,从那里到互联网;)更容易维护一个防火墙。艾尔戈......我的知识产权不在我所在的位置。 – TomTom 2011-04-15 12:26:22

0

为鼓励本地索引和参与,您可以采取的一件事情是在黎巴嫩国家代码后缀部署您的网站。

www.example.co.lb 

下面是一个country suffix domains的列表。