Java 如何检测网络冲浪习惯并重定向浏览器?

Java 如何检测网络冲浪习惯并重定向浏览器?,java,web-applications,redirect,Java,Web Applications,Redirect,我有一个简单的基本计划,让我的孩子长时间远离某些网站 基本上,我想运行一个小的后台进程,它有如下内容: if (user is on website for > 20 minutes every 24 hours ) { browser redirect user to specified website } 我意识到我可以很容易地得到一个第三方程序来做这件事,但我喜欢自己做!问题是我完全不知道如何理解这样一个项目,甚至不知道我可以用什么语言来制作这样的东西。我有一

我有一个简单的基本计划,让我的孩子长时间远离某些网站

基本上,我想运行一个小的后台进程,它有如下内容:

if (user is on website for > 20 minutes every 24 hours )
   {
     browser redirect user to specified website
   }
我意识到我可以很容易地得到一个第三方程序来做这件事,但我喜欢自己做!问题是我完全不知道如何理解这样一个项目,甚至不知道我可以用什么语言来制作这样的东西。我有一个相当不错的PHP和Java知识,我一直在学习,所以任何建议的方式去做这将是非常感谢


非常感谢:)

如果您正在使用FireFox,您可能可以通过GreaseMonkey脚本来实现这一点。

没有简单的基本程序可以做到这一点。

类似的情况要求它们始终使用相同的浏览器,并且它发布一个进程间API,允许您查看正在查看的网站并导航到其他网站。这是很多假设。您的孩子可以始终使用不同的浏览器,也可以终止系统上的进程。无论你在他们的机器上安装什么软件,他们几乎总是有办法绕过它。这不是一个简单的方法

最好的解决办法是艰难的。基本上,这是防火墙。在家里设置防火墙,并对转发的数据包进行过滤。检查数据包以查找HTTP请求,并拦截它们。记录所请求的内容,如果超出了您的限制,请按照您的意愿重写数据包


寻找一款满足您需求的商业软件可能是一个更好的主意。

我认为您可以通过可编程代理来实现这类功能。在红宝石世界里,在《为什么》存在的过程中,有一种奇妙的感觉。不幸的是,那些时代已经过去了。现在,使用Java,我会看看下面这些东西。最后,您还可以看一看。

我看到两种解决此问题的简单方法:

  • 您可以为首选浏览器编写扩展。例如,看看
  • 您可以编写http(s)代理并将浏览器设置为使用它

  • 我不推荐第二个,因为简单的家庭解决方案需要太多的工作。

    简单的回答是,这是一个相当难解决的问题,因为Erick引用了一些原因

    唯一的方法是按照这样的思路设置一些东西:分析机器上的所有网络流量,查找对特定url模式(facebook)的请求,并在任何时候启动计时器。然而,当人们想说“我不想一天在这里花费超过20分钟”时,会有额外的复杂性,因为在今天的网络中,几乎不可能定义在一个网站上花费20分钟意味着什么。请参阅,以获取有关为什么这很难的有用讨论。这基本上可以归结为这些天网站为你做请求的方式,而不是你手动点击。当然,如果你不在乎用户是否真的在那里,只要每天给他们20分钟的时间,从用户第一次登录到网站,问题就会变得容易一些

    您可以将如何为路由器编写软件作为一个可能的项目。使用或使您能够控制路由器上运行的内容,并提供集中访问,以便在整个网络上放置嗅探器(特别是如果您有多台PC正试图这样做)。当然,这增加了试图找出一个人花时间在网站上对另一个人意味着什么的复杂性。如果您的所有PC都是单用户,那么问题就不那么严重了,但是如果您的每台PC都有多个用户,那么您甚至无法作为唯一的用户关闭IP地址

    如果你不想为你的路由器编程,那么你必须编写一个网络嗅探器并在每台机器上安装它。类似这样的东西可能会给你一个很好的开端,因为编写网络嗅探器可能不符合你所想编写的“简单”程序的条件

    不管怎么说,一旦你设置好并运行了它,你就得想办法把它挂到你的操作系统上。我怀疑任何语言对于这项任务来说都是“不合适的”,所以请努力吧

    您需要为此编写一个(智能)http代理服务器。这通常被认为是一项非常重要的活动。但是,有一些黑客说这是可以做到的:

    (它使用图书馆)


    只要加上你自己的逻辑就可以了。代理山之王;-)

    这个程序应该在什么系统上运行?泛型标签似乎…不合适。正如ring0所说,在什么操作系统上运行?您需要支持哪些浏览器?您可能希望从为您想要的目标浏览器编写扩展开始。你的孩子不懂技术吗?这取决于你的孩子多大年纪/对电脑的了解程度。我在高中很早就知道如何绕过代理;)感谢您的回复,理想情况下我想做一些更复杂的事情!:)我对制作防火墙也有同样的想法。请注意,这只会禁止进一步的请求。如果我把自己停在我最喜欢的flash游戏网站上,玩同一个游戏几个小时,这种策略不会阻止我。一个稍微不同的方向是重写数据包,以便在此类静态页面的某个超时之后包含元刷新。不过非常复杂。非常感谢您的想法!:)老实说,关键不在于阻止我的孩子们这样做,而是让我学会如何自己做这样的事情。我是CS二年级的学生,所以这更像是一个学习经验的目标,而不是一个为人父母的目标!我喜欢你完全排除编写本地http代理的可能性的方式…不