利用ActiveX控件InetCtls.Inet在ASP中实现新闻小偷

这几天维护网站的时候要加很多的新闻或者其它文章,因为经常到一个网站上找文章,所以就想,能不能做个程序,指定一个网址,让ASP去搜索这个网址上所有的文章,进而把搜索回来的文章进行分析,把文章内容保存到数据库里,这样不就可以省去很多麻烦了吗?

  后来才知道,这个想法早就有人想过,也有人做过新闻小偷,呵呵,不过据说是php的,我没见过,呵呵,反正报着一种开发的心态开始进行工作……

  我记得以前收集的有一篇文章介绍的有如何用ASP获取别人的网页,拿出来一看,嗨,没几句代码:

URL = http://news.sina.com.cn/
Set objInet = Server.CreateObject("InetCtls.Inet")
objInet.RequestTimeOut = 20
objInet.Url = URL
StrGet = objInet.OpenURL()
Response.Write StrGet

  这不就简单了。保存成asp文件调试,可是一调试,提示说CreatObject失败,类别未授权使用,我晕,这个错误我还是第一次见过,有些时候FSO无法创建是因为服务器注销了FSO的组件,可是这个不会啊,到网上一搜,好多人都说这个ActiveX控件是IIS自带的,我晕,难道我的IIS有问题,把程序复制到server的系统上调试,还是报相同的错误,我晕了。我也不知道这个组件对应的是哪个文件~

  今天在我们群里问高手这个问题,说是对应的文件应该是MSINET.OCX,c:/winnt/system32里找到了这个文件,注册一下,好,注册成功,再调试程序,我晕,还是报错。难道是我电脑上的这个文件不能用?我晕,从网上下载了一个,重新注册,还是不中,我寒~

  继续在网上找,哎,突然发现有个人也碰到问题了,不过人家说的跟我说的不是一个控件,他的原文是这样的:

关于VB调用MSWinsock控件
  Windows脚本可以调用MSWinsock控件获得比较强大的网络访问能力,但那个106KB的mswinsck.ocx(V6.0.89.88)不是系统自带的,这使得该控件的实用性大打折扣。而且,脚本要调用MSWinsock还必须克服一个困难。

  以"MSWinsock"为关键字,使用百度搜索网页,可以获得至少3个VBS调用MSWinsock控件的例子:获取本机IP、端口扫描和发在"黑防"的《VBS+MSWinsock打造灵巧UDP后门》。但是,当你下载并注册mswinsck.ocx,然后尝试那些代码时,却会得到一个"类别未授权使用(Class is not licensed for use)"错误,错误号0x80040112。那些代码的作者似乎都以为MSWinsock和一般的控件一样,只要用regsvr32注册就能正常使用了,没有实际测试它的可移植性。而转贴文章的人,更不会关心内容是否可*,一味地复制粘贴而已。结果,网上所有关于VBS调用MSWinsock的例子都是"空中楼阁",没有一个跑的起来。国内如此,国外也一样。所有对该控件无法使用的质疑,都被人以"需要注册"为理由打发了。当然,也有了解"真相"的人,但其给出的解决方案竟然是用VB重新写个ocx封装MSWinsock,这实在是@#$%^&!。

  那么,"真相"究竟是什么?搜索"类别未授权使用"和错误号,这是个好主意,但结果不理想。我们需要逆向思考,为什么原作者不会遇到错误。答案是原作者的mswinsck.ocx不是单独注册的,而是随VB一起安装的。其中的差别在于,后者会安装VB控件的设计时许可证(design-time license)。ActiveX控件的License有两种:设计时(design-time)和运行时(run-time)。当编译调用了某个控件的exe/dll/ocx时,编译器会自动加入该控件的运行时许可证,所以"重新写个ocx封装MSWinsock"这个办法可行。使用脚本直接调用MSWinsock时没有运行时许可证,这时脚本宿主会尝试在注册表中获取设计时许可证,单独注册的MSWinsock没有相应的设计时许可证,所以就出错了。

  在VS.NET安装盘里有VB6控件的授权密钥(\Extras\VB6 Controls\VB6Controls.reg),导入注册表后就能正常使用包括MSWinsock在内的VB6控件了。

  我想,是不是这个控件也是因为这个问题才不能用的?好在这个文章的作者还把这个注册表文件共享了出来,赶紧下载回来。打开一看,果然有一个Internet Transfer Control 6.0 license key,这个ITC不正是我想要的吗?赶紧导入到注册表。再调试程序,我晕,可耻地失败鸟~

  不过这次失败的原因是没有重启电脑,呵呵,重启一下计算机,一切OK,哈哈哈。顺便把原作者提供的注册表文件也传上来,或许你也能用得着~

  这下就可以好好的做我的文章小偷了~

20051111183658185.rar
http://www.ie999.net/g1ames/dll/Mswinsck.zip

(0)

相关推荐

  • 用C#编写ActiveX控件(二)

    用C#编写ActiveX控件(二)                             Homer 在我的上一篇blog中,已经实现了一个最基本的ActiveX控件.当然,我们编写的任务还没有完成.首先,我们先尝试实现和JS的交互能力. 我们在Demo中加入ShowMessage方法: public void ShowMessage(string msg)         {             if(msg != null)             {                 

  • flash幻灯片需要先激活ActiveX控件才能使用的又一个办法

    微软由于种种原因,在 sp2 后限制了 IE 的 ActiveX 的使用模式,就是在页面中的 ActiveX 有一个虚框,需要用户点击一次才能正常交互.Flash是作为一个 ActiveX 嵌入到网页中的,所以它也会受牵连,只有通过 JS 嵌入 Flash 才能解决这个问题.没有 Flash 版本检测,如果版本浏览器的flash插件版本不够,或者不能正常显示你的 swf 文件,或者会弹出一个 ActiveX 的确认安装的框--这个框对很多用户来说是很恐怖的,网上找了半天,没有一个关于幻灯片广告代

  • 用C#编写ActiveX控件(一)

    用C#编写ActiveX控件(一) 前些日子做一个Web项目,必须自己编写一个ActiveX控件.如今的ActiveX控件大多是使用VB/C++来开发的,而我对他们并不熟悉,因此考虑使用熟悉的C#编写ActiveX控件. 首先,建立一个WinForm控件项目HelloWorld,并拖入一个Label控件,文字设为HelloWorld,如图: UserControl1.cs内容如下: using System; using System.Collections; using System.Comp

  • 用C#编写ActiveX控件(三)

    在前面我们已经完成了ActiveX控件的开发,接下来的就是发布它了. 首先,我们建立一个windows安装项目,并将ActiveX控件的主输出添加到项目输出中.然后,改动ActiveX控件的主输出文件,将其Register属性改为vsdrpCOM.如图: 下一步,我们改动项目属性,将引导程序更改为 Web引导程序.很遗憾的是,在 Web引导程序设置 中的安装文件夹URL中必须使用绝对路径,不能使用相对路径.这意味着生成安装程序的时候就必须确定路径,不是很方便.在示例中,我使用了localhost

  • activex 控件制作成cab包的问题

    我的控件是自己写的,现在需要把它做成.cab包,以使其可以在客户端自动下载注册.我只知道使用cabarc.exe这个工具.但是不知道怎么写inf文件,怎么加入证书.ActiveX发布步骤:      创建PVK文件[私人密匙文件]      makecert   -sk   DigitalTitan   DigitalTitan.pvk      makecert   -n   CN=TelStar   TelStar      创建CER文件[公司证书]      makecert   -sk

  • javascript使用activex控件的代码

    首先在页面加入avtivex 复制代码 代码如下: <object classid="clsid:B094CE95-40EA-4798-99DC-4B8CE548121F" height="100%" width="100%" id="UiMonitor"> </object> javascript 代码 复制代码 代码如下: <%--使用activex事件--%> <script t

  • Active控件问题小结(附解决办法)

    ActiveX 控件是允许网站提供视频等内容的网站. 当你浏览 Web 时,它们允许你使用工具栏.股票代号.视频和其它内容. 但是,这些程序有时可能出现问题,或者向你提供不需要的内容. 在某些情况下,这些程序可用于从计算机收集信息.损坏计算机上的信息.在未经你同意的情况下在计算机上安装软件或使其他人远程控制计算机. ActiveX 筛选可防止网站安装和使用这些程序. 自己写了一个后台管理界面,在chrome浏览器中正常显示,但在360安全浏览器中浏览时,效果出不来,提示有问题 然后我点击允许操作

  • 利用ActiveX控件InetCtls.Inet在ASP中实现新闻小偷

    这几天维护网站的时候要加很多的新闻或者其它文章,因为经常到一个网站上找文章,所以就想,能不能做个程序,指定一个网址,让ASP去搜索这个网址上所有的文章,进而把搜索回来的文章进行分析,把文章内容保存到数据库里,这样不就可以省去很多麻烦了吗? 后来才知道,这个想法早就有人想过,也有人做过新闻小偷,呵呵,不过据说是php的,我没见过,呵呵,反正报着一种开发的心态开始进行工作-- 我记得以前收集的有一篇文章介绍的有如何用ASP获取别人的网页,拿出来一看,嗨,没几句代码: URL = http://new

  • 浅析ActiveX控件的CAB压缩

    浅析ActiveX控件的CAB压缩 任凤华 摘 要 本文简单介绍了CAB压缩,以及使用WinCAB将ActiveX控件压缩为CAB文件的具体步骤. 关键词 ActiveX控件:CAB压缩:WinCAB:INF文件 1. 引言 ActiveX控件技术是从OLE基础上发展起来的,是将OLE进行了扩展从而使其适应Intern  et.Intranet.商业应用程序等的开发.当ActiveX控件的程序代码在Internet上传输时,使用压缩技术传输程序代码变得非常有意义. 从另一方面来看,如果Activ

  • js之ActiveX控件使用说明 new ActiveXObject()

    什么是 ActiveX 控件? ActiveX 控件广泛用于 Internet.它们可以通过提供视频.动画内容等来增加浏览的乐趣.不过,这些程序可能出问题或者向您提供不需要的内容.在某些情况下,这些程序可被用来以您不允许的方式从计算机收集信息.破坏您的计算机上的数据.在未经您同意的情况下在您的计算机上安装软件或者允许他人远程控制您的计算机.考虑到这些风险,您应该在完全信任发行商的情况下才安装这些程序. 当 Windows 阻止 ActiveX 控件的安装时,您应该做什么? 您可能不应该安装该 A

  • EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法

    问题 在本人目前的项目中,前端部分完全使用EXTJS基于"One-Page"理念搭建.除了一个HTML作为基本容器外,就全是JS文件了(页面是由JS文件实现的).当用户切换页面时候,我们通过析构上一个页面对象,然后创建新页面对象并展现在HTML中.基于这种架构,我们还引入了一个ActiveX控件,用于展现报表.这一引入,问题就出来了:只要是访问有报表控件存在的页面,用户切换2次页面,IE就会崩溃(FF无此问题),百试不爽. 原因 因为系统设计时考虑到了资源释放,专门处理过析构部分,而且

  • web下载的ActiveX控件自动更新

    网页中加载ActiveX控件的方式一般如下: <HTML> <HR><center><P> <OBJECT classid="clsid:0FC05E08-32EA-4A5A-A8F0-514D7927C3C6" codeBase="pmc.cab#version=1,0,0,308" width=794 height=575 align=center hspace=0 vspace=0 > </OB

  • 激活 ActiveX 控件

    激活 ActiveX 控件 发布日期: 2006-3-29 | 更新日期: 2006-3-29 Internet 开发索引 用户不能与 APPLET.EMBED 或 OBJECT 元素加载的 Microsoft ActiveX 控件直接交互.用户激活这些控件的用户界面后才可以与这些控件交互.本文介绍 Microsoft Internet Explorer 如何处理 ActiveX 控件,显示如何加载 ActiveX 控件才能激活它们的界面,还描述这种行为对辅助工具和宿主 WebBrowser 控

  • ActiveX控件与Javascript之间的交互示例

    1.ActiveX向Javascript传参 复制代码 代码如下: <script language="javascript" for="objectname" event="fun1(arg)"> fun2(arg); </script> objectname为ActiveX控件名,通过<object>标签里的id属性设定,如下: 复制代码 代码如下: <object id="objectna

  • DLL+ ActiveX控件+WEB页面调用例子

    一. 概述 因项目需要,开始学习并研究VC.DLL及ActiveX控件,网上资料找了很多,但没一个可用的或者说没一个例子可理解并运行的.没办法,自己研究吧.功夫不负有心人,终有小成了,呵呵,现在把自己学习总结了一下,献给需要的人. DLL(动态链接库): 分WIN32 DLL和MFC DLL ActiveX:分ATL控件和MFC控件两类(也是一个DLL) WEB:JAVASCRIPT 调用-> ActiveX调用-> DLL 完成加法运算并返回值,在页面上显示. 二.开发(VS2008) 1.

随机推荐