URL停止使用Delphi服务
我想用Delphi7编写后台服务,它可以阻止任何浏览器加载特定的URL。这可能吗 有人能给我指个方向吗 提前谢谢URL停止使用Delphi服务,delphi,url,browser,Delphi,Url,Browser,我想用Delphi7编写后台服务,它可以阻止任何浏览器加载特定的URL。这可能吗 有人能给我指个方向吗 提前谢谢 Shane是一个服务,不,我不这么认为。但是您可以编辑“hosts”文件,以便url的域指向127.0.0.1。您可以创建一个“保护”该文件的服务,尽管该服务本身必须具有提升的权限才能对其进行编辑,当然,如果用户有权这样做,该服务本身也可以被终止 无论如何,如果您设法编辑该文件,浏览器将无法按域名查找服务器。当然,具有IP地址的URL不能以这种方式阻止,您也不能阻止特定URL,只能阻
Shane是一个服务,不,我不这么认为。但是您可以编辑“hosts”文件,以便url的域指向127.0.0.1。您可以创建一个“保护”该文件的服务,尽管该服务本身必须具有提升的权限才能对其进行编辑,当然,如果用户有权这样做,该服务本身也可以被终止 无论如何,如果您设法编辑该文件,浏览器将无法按域名查找服务器。当然,具有IP地址的URL不能以这种方式阻止,您也不能阻止特定URL,只能阻止整个域
但一般来说,这不是使用定制服务解决的问题,而是在PC或路由器上的防火墙中解决的问题。服务,不,我不这么认为。但是您可以编辑“hosts”文件,以便url的域指向127.0.0.1。您可以创建一个“保护”该文件的服务,尽管该服务本身必须具有提升的权限才能对其进行编辑,当然,如果用户有权这样做,该服务本身也可以被终止 无论如何,如果您设法编辑该文件,浏览器将无法按域名查找服务器。当然,具有IP地址的URL不能以这种方式阻止,您也不能阻止特定URL,只能阻止整个域
但一般来说,这不是使用自定义服务解决的问题,而是在PC或路由器上的防火墙中解决的问题。有两种方法,第二种在技术上是最好的:
- 编写一个DLL供您使用,如果这些进程用于浏览器,则必须截获并过滤所有流量,例如使用Windows套接字
- 编写一个有点像防火墙的程序(在操作系统的较低级别)
如果您仍想编程:准备使用LSP进行1人年的编码。有两种方法,其中第二种方法在技术上是最好的:
- 编写一个DLL供您使用,如果这些进程用于浏览器,则必须截获并过滤所有流量,例如使用Windows套接字
- 编写一个有点像防火墙的程序(在操作系统的较低级别)
如果您仍要编程:准备使用LSP进行1人年的编码。对于Internet Explorer,您可以编写一个IE本身加载并将浏览器事件传递给的URL。BHO然后可以根据需要接受/拒绝每个请求的URL。对于Internet Explorer,您可以编写一个IE本身加载并将浏览器事件传递给BH的URLO然后可以根据需要接受/拒绝每个请求的URL。您可以通过编辑
主机
文件来实现这一点。请参阅以了解如何做到这一点。无需编写windows服务。如果主机
文件不是一个适当的解决方案,那么您可以考虑在C/C++中编写一个过滤HTTP流量的驱动程序。但是,这不是一个简单的解决方案琐碎的任务。我的朋友是一名Windows设备驱动程序程序员,他说这种项目大约需要10000行代码,只能用C/C++编写。@Adam,正如我在对的评论中所说,只有在浏览器不使用代理的情况下,编辑主机文件才有效。如果使用代理,你的建议毫无用处。@jachguate当然你是对的。另一种想法是,您可以使用OpenDNS(一种免费DNS服务,允许您根据域的内容分级筛选域),并将不需要的域添加到阻止列表中。这将阻止您所在位置的所有计算机(通过公共IP地址访问internet)使用该服务访问被阻止的域。但仍然无法解决代理服务器问题,或者无法解决手动将DNS设置为OpenDNS服务器以外的其他服务器的计算机问题。您可以通过编辑主机
文件来实现这一点。请参阅以了解如何执行此操作。无需编写windows服务。如果主机
文件不足以解决此问题lution,然后你可以看看用C/C++编写一个过滤HTTP流量的驱动程序。然而,这不是一个简单的任务。我的朋友是一个Windows设备驱动程序程序员,他说这种项目大约需要10000行代码,只能用C/C++编写。@Adam,正如我在一篇评论中所说,只有当browser不使用代理。如果使用代理,你的建议就没有用了。@jachguate当然你是对的。另外,你可以使用OpenDNS(一个