2009-09-14 52 views
1

我正在開發一個Windows應用程序以阻止來自使用DotNet Windows編程的計算機的網站。我發現了一些結果來阻止網址,但不是爲了網站。這是我必須阻止完整的網站不是一個單一的網址。如何使用DotNet以編程方式阻止網站

所以能有人幫我解決這個問題

感謝你

Chaithanya

+0

你能發佈鏈接到你用來阻止網址的方法嗎?這可能有助於解釋你的問題的其餘部分。 – Justin 2009-09-14 12:24:08

回答

2

這聽起來像你想要System.Uri類的服務(http://msdn.microsoft.com/en-us/library/system.uri.aspx)。我猜測,在某些時候你必須決定你是否要允許或禁止基於URI的請求,在這種情況下,你會希望類似以下邏輯:

Uri uri = new Uri("http://www.google.co.uk/somepage.html"); 
if (uri.Host.ToLower().EndsWith("google.co.uk")) 
{ 
    // Do something 
} 

與實驗類似的東西。需要注意的是:

  • 如果您檢查主機是否等於「www.google.co.uk」,那麼這仍然意味着其他子域(例如「www3.google.co.uk」)不會被阻止。
  • 如果您檢查主機是否包含「google.co.uk」,那麼您可能會阻止其子域包含的人(出於愚蠢的原因)某人刪除了網址,例如「google.co.uk.MyDomain.co.uk 「這仍然是」MyDomain.co.uk「域下的有效(如果是愚蠢的)子域。
+0

當然,這隻會阻止發生此檢查的請求。即這不是一個全電腦檢查。 – MSalters 2009-09-14 12:35:55

+0

另一件需要注意的事情是,您所做的'EndsWith()'檢查,也會阻止「notgoogle.co.uk」。 – 2009-09-14 12:42:48

2

爲什麼您使用的是本地機器上運行的應用程序做到這一點?這沒有多大意義。這通常通過公司代理完成。

您可以編輯

c:\windows\system32\drivers\etc\hosts 

文件來解析域名爲「127.0.0.1」,而不是什麼它通常會做,阻止它成爲在時尚可見。但最好做好。

請詳細描述您正在嘗試做什麼。

+1

我不會使用localhost,'以防萬一'。使用127.0.0.0或其他一些無效的IP地址可能會更安全。 – 2009-09-14 11:20:07

+0

這也不像希思特那樣精細,即。他/她想阻止http://example.com/foo而不是http://example.com/bar(至少從我所瞭解的內容來看)。我確實同意,關閉本地PC的代理服務器是儘管如此。 – 2009-09-14 11:22:06

+2

馬修:你誤讀了,看到他的帖子:'...那是我必須阻止完整的網站不是一個單一的網址。' – 2009-09-14 11:22:52