2011-04-15 109 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的列表。