2012-05-07 56 views
0

我正在研究一個小的(我希望如此)項目,而且我非常努力。我一直在搜索,仍然無法開始。讓我解釋我的想法。首先,我在JTextField中輸入一個網站的地址(假設說codeproject.com)。然後在打一個JButton(比方說Block)後,我無法使用互聯網瀏覽器打開該網站(實際上是firefox)。但是在擊中另一個JButton(比如說Unblock)之後,我可以正常訪問該網站。我剛剛知道使用java很難做到這一點。使用C++也許是更好的選擇。使用java阻止某個網站

任何意見將不勝感激!

在此先感謝!

+0

你正在使用你自己的HTTP代理或類似的東西? –

+5

這與Java o C++不太相關,但是在底層系統上。你基本上想添加和刪除防火牆中的條目嗎?哪個系統? – Matteo

+0

@ Moritz Petersen:好的,實際上我不知道我是否在使用HTTP代理。我期望的是看到Java在這種情況下的強大功能? –

回答

1

檢出Rabbit,這是一個用Java編寫的代理服務器。當然,您的瀏覽器必須配置爲通過該代理傳遞所有請求。

1

雖然我同意@Moritz Petersen,但我可以提出另一種解決方案。 HTTP代理很好,但用戶可以從他的瀏覽器的偏好中刪除它。但你可以做別的事情。 JPcap是一個用於捕獲的庫和發送網絡數據包。

因此,您的應用程序可以執行以下操作:捕獲機器上任何瀏覽器發送的HTTP請求。如果請求的URL與黑名單中的一個匹配,則在稍後延遲後向瀏覽器發回「拒絕」。因此,從用戶角度看,它將看起來像瀏覽器正在開始渲染請求的網站,並突然出現拒絕頁面。這比使用就緒的HTTP代理更復雜,但非常有趣,應該是相對較小的項目。除非他殺死你的應用程序,否則用戶無法繞過你的支票。

+0

+1有趣的答案! –

+0

@AlexR假設我可以捕獲從我的機器上的任何瀏覽器發送的任何HTTP請求。如果請求的URL與我的黑名單中的一個匹配,那麼如何向瀏覽器發送「拒絕」以防止它訪問URL? –

0

如果您使用代理服務器,那麼您的軟件必須始終運行。相反,對於入門級網站訪問控制軟件,您可以使用java或C++來構建應用程序(GUI)。該軟件只需編輯操作系統中的「主機」,WebDomain就會被阻止。

位置的 '主人' 文件:

  • 在Windows中:C:\ WINDOWS \ SYSTEM32 \ DRIVERS \等\主機

  • 在Linux中:/etc/hosts中

您的軟件需要管理員/ root權限才能編輯'hosts'文件。

步驟啓動軟件:

  • 編輯文件和行

--- 127.0.0之前刪除 '#'。1個本地主機

--- :: 1個本地主機

步驟來阻止一個網站:

  • 追加下面一行到 '主機' 文件:

- - 0.0.0.0 www.facebook.com

--- 0.0.0.0 www.example.com

步驟來阻止:

  • 只是刪除您已經添加到該文件的行。

注意:

永遠無法抹去它默認是有文件的內容。建議維護「主機」文件的備份副本。