利用ActiveX控制項InetCtls.Inet在ASP中實現新聞小偷

來源:互聯網
上載者:User

這幾天維護網站的時候要加很多的新聞或者其它文章,因為經常到一個網站上找文章,所以就想,能不能做個程式,指定一個網址,讓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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.