2012-05-07 58 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

步骤来阻止:

  • 只是删除您已经添加到该文件的行。

注意:

永远无法抹去它默认是有文件的内容。建议维护“主机”文件的备份副本。