主頁(yè) > 知識(shí)庫(kù) > 利用ActiveX控件InetCtls.Inet在ASP中實(shí)現(xiàn)新聞小偷

利用ActiveX控件InetCtls.Inet在ASP中實(shí)現(xiàn)新聞小偷

熱門標(biāo)簽:科大訊飛語(yǔ)音識(shí)別系統(tǒng) 服務(wù)器配置 銀行業(yè)務(wù) 電子圍欄 團(tuán)購(gòu)網(wǎng)站 阿里云 Linux服務(wù)器 Mysql連接數(shù)設(shè)置
這幾天維護(hù)網(wǎng)站的時(shí)候要加很多的新聞或者其它文章,因?yàn)榻?jīng)常到一個(gè)網(wǎng)站上找文章,所以就想,能不能做個(gè)程序,指定一個(gè)網(wǎng)址,讓ASP去搜索這個(gè)網(wǎng)址上所有的文章,進(jìn)而把搜索回來(lái)的文章進(jìn)行分析,把文章內(nèi)容保存到數(shù)據(jù)庫(kù)里,這樣不就可以省去很多麻煩了嗎?

  后來(lái)才知道,這個(gè)想法早就有人想過,也有人做過新聞小偷,呵呵,不過據(jù)說(shuō)是php的,我沒見過,呵呵,反正報(bào)著一種開發(fā)的心態(tài)開始進(jìn)行工作……

  我記得以前收集的有一篇文章介紹的有如何用ASP獲取別人的網(wǎng)頁(yè),拿出來(lái)一看,嗨,沒幾句代碼:

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


  這不就簡(jiǎn)單了。保存成asp文件調(diào)試,可是一調(diào)試,提示說(shuō)CreatObject失敗,類別未授權(quán)使用,我暈,這個(gè)錯(cuò)誤我還是第一次見過,有些時(shí)候FSO無(wú)法創(chuàng)建是因?yàn)榉?wù)器注銷了FSO的組件,可是這個(gè)不會(huì)啊,到網(wǎng)上一搜,好多人都說(shuō)這個(gè)ActiveX控件是IIS自帶的,我暈,難道我的IIS有問題,把程序復(fù)制到server的系統(tǒng)上調(diào)試,還是報(bào)相同的錯(cuò)誤,我暈了。我也不知道這個(gè)組件對(duì)應(yīng)的是哪個(gè)文件~

  今天在我們?nèi)豪飭柛呤诌@個(gè)問題,說(shuō)是對(duì)應(yīng)的文件應(yīng)該是MSINET.OCX,c:/winnt/system32里找到了這個(gè)文件,注冊(cè)一下,好,注冊(cè)成功,再調(diào)試程序,我暈,還是報(bào)錯(cuò)。難道是我電腦上的這個(gè)文件不能用?我暈,從網(wǎng)上下載了一個(gè),重新注冊(cè),還是不中,我寒~

  繼續(xù)在網(wǎng)上找,哎,突然發(fā)現(xiàn)有個(gè)人也碰到問題了,不過人家說(shuō)的跟我說(shuō)的不是一個(gè)控件,他的原文是這樣的:

關(guān)于VB調(diào)用MSWinsock控件
  Windows腳本可以調(diào)用MSWinsock控件獲得比較強(qiáng)大的網(wǎng)絡(luò)訪問能力,但那個(gè)106KB的mswinsck.ocx(V6.0.89.88)不是系統(tǒng)自帶的,這使得該控件的實(shí)用性大打折扣。而且,腳本要調(diào)用MSWinsock還必須克服一個(gè)困難。 

  以"MSWinsock"為關(guān)鍵字,使用百度搜索網(wǎng)頁(yè),可以獲得至少3個(gè)VBS調(diào)用MSWinsock控件的例子:獲取本機(jī)IP、端口掃描和發(fā)在"黑防"的《VBS+MSWinsock打造靈巧UDP后門》。但是,當(dāng)你下載并注冊(cè)mswinsck.ocx,然后嘗試那些代碼時(shí),卻會(huì)得到一個(gè)"類別未授權(quán)使用(Class is not licensed for use)"錯(cuò)誤,錯(cuò)誤號(hào)0x80040112。那些代碼的作者似乎都以為MSWinsock和一般的控件一樣,只要用regsvr32注冊(cè)就能正常使用了,沒有實(shí)際測(cè)試它的可移植性。而轉(zhuǎn)貼文章的人,更不會(huì)關(guān)心內(nèi)容是否可*,一味地復(fù)制粘貼而已。結(jié)果,網(wǎng)上所有關(guān)于VBS調(diào)用MSWinsock的例子都是"空中樓閣",沒有一個(gè)跑的起來(lái)。國(guó)內(nèi)如此,國(guó)外也一樣。所有對(duì)該控件無(wú)法使用的質(zhì)疑,都被人以"需要注冊(cè)"為理由打發(fā)了。當(dāng)然,也有了解"真相"的人,但其給出的解決方案竟然是用VB重新寫個(gè)ocx封裝MSWinsock,這實(shí)在是@#$%^!。

  那么,"真相"究竟是什么?搜索"類別未授權(quán)使用"和錯(cuò)誤號(hào),這是個(gè)好主意,但結(jié)果不理想。我們需要逆向思考,為什么原作者不會(huì)遇到錯(cuò)誤。答案是原作者的mswinsck.ocx不是單獨(dú)注冊(cè)的,而是隨VB一起安裝的。其中的差別在于,后者會(huì)安裝VB控件的設(shè)計(jì)時(shí)許可證(design-time license)。ActiveX控件的License有兩種:設(shè)計(jì)時(shí)(design-time)和運(yùn)行時(shí)(run-time)。當(dāng)編譯調(diào)用了某個(gè)控件的exe/dll/ocx時(shí),編譯器會(huì)自動(dòng)加入該控件的運(yùn)行時(shí)許可證,所以"重新寫個(gè)ocx封裝MSWinsock"這個(gè)辦法可行。使用腳本直接調(diào)用MSWinsock時(shí)沒有運(yùn)行時(shí)許可證,這時(shí)腳本宿主會(huì)嘗試在注冊(cè)表中獲取設(shè)計(jì)時(shí)許可證,單獨(dú)注冊(cè)的MSWinsock沒有相應(yīng)的設(shè)計(jì)時(shí)許可證,所以就出錯(cuò)了。 

  在VS.NET安裝盤里有VB6控件的授權(quán)密鑰(\Extras\VB6 Controls\VB6Controls.reg),導(dǎo)入注冊(cè)表后就能正常使用包括MSWinsock在內(nèi)的VB6控件了。

  我想,是不是這個(gè)控件也是因?yàn)檫@個(gè)問題才不能用的?好在這個(gè)文章的作者還把這個(gè)注冊(cè)表文件共享了出來(lái),趕緊下載回來(lái)。打開一看,果然有一個(gè)Internet Transfer Control 6.0 license key,這個(gè)ITC不正是我想要的嗎?趕緊導(dǎo)入到注冊(cè)表。再調(diào)試程序,我暈,可恥地失敗鳥~

  不過這次失敗的原因是沒有重啟電腦,呵呵,重啟一下計(jì)算機(jī),一切OK,哈哈哈。順便把原作者提供的注冊(cè)表文件也傳上來(lái),或許你也能用得著~

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

20051111183658185.rar
http://www.ie999.net/g1ames/dll/Mswinsck.zip
您可能感興趣的文章:
  • flash幻燈片需要先激活A(yù)ctiveX控件才能使用的又一個(gè)辦法
  • 用C#編寫ActiveX控件(三)
  • 用C#編寫ActiveX控件(二)
  • 用C#編寫ActiveX控件(一)
  • activex 控件制作成cab包的問題
  • javascript使用activex控件的代碼
  • Active控件問題小結(jié)(附解決辦法)

標(biāo)簽:棗莊 江蘇 衡水 大理 萍鄉(xiāng) 衢州 蚌埠 廣元

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用ActiveX控件InetCtls.Inet在ASP中實(shí)現(xiàn)新聞小偷》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266