使用java阻止某个网站

使用java阻止某个网站,java,Java,我正在做一个小项目(我希望如此),我正处于一个非常贫困的阶段。我在谷歌上搜索了一下,还是没法开始。让我解释一下我的想法。首先,我在JTextField中键入一个网站的地址(比如codeproject.com)。然后在点击一个JButton(比如Block)之后,我无法使用互联网浏览器(实际上是firefox)打开该站点。但在点击另一个JButton(比如Unblock)后,我可以正常访问该网站。我刚刚知道使用java很难做到这一点。使用C++可能是更好的选择。 任何建议都将不胜感激 提前谢谢 签

我正在做一个小项目(我希望如此),我正处于一个非常贫困的阶段。我在谷歌上搜索了一下,还是没法开始。让我解释一下我的想法。首先,我在JTextField中键入一个网站的地址(比如codeproject.com)。然后在点击一个JButton(比如Block)之后,我无法使用互联网浏览器(实际上是firefox)打开该站点。但在点击另一个JButton(比如Unblock)后,我可以正常访问该网站。我刚刚知道使用java很难做到这一点。使用C++可能是更好的选择。 任何建议都将不胜感激


提前谢谢

签出,这是一个用Java编写的代理服务器。当然,您的浏览器必须配置为通过该代理传递所有请求。

尽管我同意@Moritz-Petersen的观点,但我可以建议另一种解决方案。HTTP代理很好,但用户可以将其从浏览器的首选项中删除。但你或许可以做些别的事情。是一个用于捕获和发送网络数据包的库


因此,您的应用程序可以执行以下操作:捕获从机器上的任何浏览器发送的HTTP请求。如果请求的URL与黑名单中的URL相匹配,请在稍微延迟后将“拒绝”发送回浏览器。因此,从用户的角度来看,浏览器似乎开始呈现请求的站点,突然出现拒绝页面。这比使用现成的HTTP代理更复杂,但非常有趣,应该是一个相对较小的项目。用户不能绕过您的检查,除非他杀死您的应用程序

如果您使用代理服务器,那么您的软件必须一直运行。相反,对于入门级网站访问控制软件,可以使用java或C++来构建应用程序(GUI)。软件只需编辑操作系统中的“主机”,网络域将被阻止

“主机”文件的位置:

  • 在Windows中:C:\Windows\System32\drivers\etc\hosts

  • 在Linux中:/etc/hosts

您的软件需要管理员/root权限才能编辑“主机”文件

启动软件的步骤:

  • 编辑文件并删除行前的“#”
---127.0.0.1本地主机

---::1本地主机

阻止网站的步骤:

  • 将以下行附加到“主机”文件:
---0.0.0.0 www.facebook.com

---0.0.0.0 www.example.com

解除阻止的步骤:

  • 只需删除已添加到文件中的行
注意事项:


不要删除默认存在的文件内容。推荐一个备份文件,“主机文件”。你是否在自己的HTTP代理上工作?或者类似的事情。这与java OC++无关,但是在底层系统上。您基本上想在防火墙中添加和删除条目吗?哪个系统?@Moritz Petersen:嗯,实际上我不知道我是否在使用HTTP代理。我期待的是看看Java在这种情况下能有多强大?@Matteo:我的系统是windows 7,我假设我的系统上没有防火墙,甚至windows 7的防火墙也没有。@Trinhduehong再次强调:这与Java无关,也与它的强大无关。您可以这样做:指示浏览器使用您控制的代理,或者用Java程序更改防火墙设置。@AlexR假设我可以捕获从我机器上任何浏览器发送的任何HTTP请求。如果请求的URL与我的黑名单中的URL匹配,那么我如何向浏览器发送“拒绝”以阻止其访问该URL?