我有一个简单的基本程序,让我的孩子长时间离开某些网站。
基本上,我想运行一些像这样的后台进程:
if (user is on website for > 20 minutes every 24 hours )
{
browser redirect user to specified website
}
我意识到我可以很容易地得到第三方程序来做到这一点,但我喜欢自己做!问题是我完全不知道如何理解这样一个项目 - 甚至我可以用什么语言来制作这样的东西。我对PHP和Java有相当不错的知识,而且我总是在学习,所以任何有关此方法的建议都会非常感激!
非常感谢:)
答案 0 :(得分:2)
没有简单的基本程序可以做到这一点。
这样的事情要求他们总是使用相同的浏览器,并且它发布了一个进程间API,允许您查看正在查看的网站并导航到其他网站。这是很多假设。您的孩子可能总是使用不同的浏览器,或者他们可能会杀死系统上的进程。无论你在他们的机器上安装什么软件,他们几乎都有办法绕过它。这不是一个简单的方法。
最好的解决方案很难。基本上,它是防火墙。在您家中设置防火墙并对正在转发的数据包进行过滤。检查数据包以查找HTTP请求,并拦截它们。记录所请求的内容以及是否超出限制,重写数据包的方式。
仅仅寻找能够满足您需求的商业软件可能是一个更好的主意。
答案 1 :(得分:0)
如果您使用的是FireFox,则可以使用GreaseMonkey脚本实现此目的。
答案 2 :(得分:0)
我认为您可以通过可编程代理实现这种功能。在红宝石世界中,在_why存在期间,有奇妙的MouseHole。不幸的是,那些时代已经一去不复返了。现在,使用Java,我会看看像this document这样的东西。最后,您还可以查看proxomitron。
答案 3 :(得分:0)
我看到两种简单的方法来解决这个问题:
我不推荐第二个,恕我直言,它需要太多工作才能实现简单的家庭解决方案。
答案 4 :(得分:0)
简短的回答是,由于Erick引用的原因,这是一个相当难以解决的问题。
唯一的方法是设置WireShark行的内容,分析计算机上的所有网络流量,并查找对某个网址模式的请求( facebook )并在它发生时启动计时器。然而,当人们想说“我不想每天在这里花费超过20分钟”时,还有其他复杂性,因为在今天的网络上几乎不可能定义在网站上花20分钟意味着什么。请参阅this thread on the OS X Hints forums,了解有关为何这很难的有用讨论。它基本上归结为网站最近为您提出的请求,而不是您手动点击。当然,如果你不关心用户实际在那里,但是从第一次登录到网站每天只给他们20分钟,那么问题会变得容易一些。
您可以找出如何为您的路由器编写软件作为一个可能的项目。使用Tomato或DD-WRT,您可以控制路由器上正在运行的内容,并提供在整个网络上放置嗅探器所需的集中访问权限(特别是如果您有多台PC正在尝试这样做)。当然,这增加了尝试弄清楚一个人在网站上花费时间而不是另一个人意味着什么的复杂性。如果您的所有PC都是单用户,那么问题就不那么难了,但如果每台PC有多个用户,那么您甚至无法以独立用户的身份关闭IP地址。
如果您不想对路由器进行编程,那么您必须编写网络嗅探器并将其安装在每台计算机上。像jNetStream这样的东西可能会给你一个良好的开端,因为编写网络嗅探器可能不符合你认为你要编写的“简单”程序。
无论如何,一旦你完成设置和运行,你只需要弄清楚如何将它挂钩到你的操作系统中。我怀疑任何一种语言对于这项任务来说真的“不合适”,所以就这样了!
答案 5 :(得分:0)
您需要为此编写一个(智能)http代理服务器。这通常被认为是一种非平凡的活动。但是,嘿,有黑客说他们可以做到:
A HTTP Proxy Server in 20 Lines of node.js Code (它使用node.js库)
只需添加你自己的逻辑就可以了。代理山之王; - )