URL停止使用德尔福服务

问题描述:

我想要使用Delphi 7编写的后台服务,它阻止任何浏览器加载特定的URL。这可能吗?URL停止使用德尔福服务

任何人都可以指出我的方向吗?

在此先感谢。

Shane

+1

你可以通过编辑'hosts'文件来实现。看[这](http://www.jafaloo.com/2013/01/03/windows-hosts-file/)找出如何做到这一点。无需编写Windows服务。 – Adam 2013-03-14 16:28:43

+0

如果'hosts'文件不是一个适当的解决方案,那么你可以看一下用C/C++编程过滤HTTP流量的驱动程序。然而,这不是一项微不足道的任务。我的朋友是Windows设备驱动程序员,他说这类项目大约有10,000行代码,只能用C/C++编写。 – 2013-03-14 16:32:06

+0

@Adam,正如我在[Golez答案](http:// *。com/a/15414851/255257),只有浏览器不使用代理时,编辑主机文件才有效。如果使用代理,你的建议是无用的。 – jachguate 2013-03-14 16:32:27

服务,不,我不这么认为。但是,您可以编辑'hosts'文件,以使url的域指向127.0.0.1。您可以创建一个“保护”这个文件的服务,虽然服务本身必须提升权限才能编辑它,当然,如果用户有权这样做,服务本身也可以被终止。

无论如何,如果您设法编辑文件,浏览器将无法通过域名找到服务器。当然,具有IP地址的网址不能以这种方式阻止,也不能阻止特定的网址,只能阻止整个网域。

但一般来说,这不是使用自定义服务解决的问题,而是在PC或路由器上的防火墙中。

+3

如果浏览器直接连接到站点,则主机文件技巧有效,但如果使用代理服务器则不适用。 – jachguate 2013-03-14 16:29:51

+0

@jachguate谢谢,我认为你是对的。 :) – GolezTrol 2013-03-14 16:31:24

有它的第二个在技术上是最好的两种方法:

我在互联网过滤软件工作,我可以告诉你,都是承诺。 我们最初采取了第一种方法,然后切换到另一种方法,因为它在技术上更好。 [我们从来没有完成过渡,因为该公司折叠;-(]

我们没有写自己的LSP(这本身就是一个很大的工作),但使用的产品从Komodia。虽然他们写为C,人们是但是正如我刚才所说的,这是很大的:你必须处理32位和64位代码,http与https,保护服务免于被拦截等等。任何非公开的,编程解决方案,你可以找到更好的(虽然很容易规避)。

如果你还想编程:准备1人使用LSP编码

对于Internet Explorer,您可以编写IE自己加载并传递浏览器事件的Browser Helper Object。然后,BHO可以根据需要根据每个请求接受/拒绝URLS。

+0

这个问题是专门针对任何浏览器。 – MikeD 2013-03-14 20:58:37

+0

@MikeD:我意识到这一点,但是没有一个统一解释所有浏览器的单一答案,并且没有创建/使用实现黑名单的外部代理。由于每个浏览器都私自实现自己的HTTP引擎,因此您必须重新配置每个浏览器以通过代理,或者为每个浏览器分别编写针对浏览器的钩子(如BHO for IE)(如果外部代理不是一个选项。 – 2013-03-14 21:49:57

+0

所有这些都非常好,但在盒子外面思考,我认为这可以在一周内完成。 – Shane 2013-03-15 13:49:12