当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用Asp获取Dll加密新闻内容

ASP
ASP 3.0高级编程(二十七)
ASP 3.0高级编程(二十八)
ASP 3.0高级编程(二十九)
ASP 3.0高级编程(三十)
ASP中时间函数的使用(一)
ASP中时间函数的使用(二)
ASP中时间函数的使用(三)
.NET之ASP WebApplication快速入门(1)
.NET之ASP WebApplication快速入门(2)
.NET之ASP WebApplication快速入门(3)
.NET之ASP WebApplication快速入门(4)
.NET之ASP WebApplication快速入门(5)
asp.NET特写
ASP 3.0高级编程(七)
ASP 3.0高级编程(八)
ASP.NET 入门的五个步骤
ASP 组件指南
XML 数据的编码方式
ASP 3.0高级编程(九)
ASP 3.0高级编程(十)

ASP 中的 用Asp获取Dll加密新闻内容


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 44 ::
收藏到网摘: n/a

 

以下是代码:
<%
on error resume next
  Dim objXMLHTTP, xml
  Set xml = Server.CreateObject("Microsoft.XMLHTTP")
  xml.Open "GET", "http://chanye.finance.sina.com.cn/yj/2005-01-05/236914.shtml", False
  xml.Send
  tmpstr= xml.responseText
  ep=clng(instr(1,tmpstr,"meta_data2"))+18
  tmpstr=replace(tmpstr,vbcrlf,"")
  tmpstr=replace(tmpstr,chr(9),"")
  tmpstr=replace(tmpstr,chr(32),"")
  mydata=mid(tmpstr,1,ep)
  recfilen=server.MapPath("tempstr.txt")
  set Astream=Server.CreateObject("Adodb.Stream")
  Astream.type=2
  Astream.Mode = 3
  Astream.open
  Astream.CharSet = "GB2312"
  Astream.Position =0
  Astream.Writetext mydata,1
  Astream.SaveToFile recfilen,2
  Astream.close
  set Astream1=Server.CreateObject("Adodb.Stream")
  Astream1.type=2
  Astream1.Mode = 3
  Astream1.CharSet = "GB2312"
  Astream1.open
  Astream1.LoadFromFile(recfilen)
  Assp=Astream1.size
  crttmpstr=Astream1.ReadText(Assp)
  Astream1.close
  sp1=clng(instr(1,crttmpstr,"meta_data1"))+16
  ep1=clng(instr(sp1,crttmpstr,"NAME=meta_data2"))-7
  lth1=ep1-sp1
  newdata=mid(crttmpstr,sp1,lth1)
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
body{
 font-size:12px
}
td{
 font-size:12px
}
</style>
<title>用Asp获取Dll加密新闻内容</title>
<table width="540" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td>更新时间:<%=now  %>获取内容长度:<%=lth1  %>
      字节
注意要使用http://127.0.0.1/Ip1HtmlView.dll你得先下载这个Dll文件,怎么下不用多说吧?!
      <object id=HtmlIp1View codebase=http://127.0.0.1/Ip1HtmlView.dll#version=1,0,1,14 classid=CLSID:D854FC15-D3EA-496A-B2A0-A772A3DE1D09>
        <param name="meta_data1" value="<%=newdata  %>">
        <param name="meta_data2" value="">
        <param name="meta_data3" value="">
        <param name="meta_data4" value="">
        <param name="meta_data5" value="">
        <param name="meta_data6" value="">
        <param name="meta_data7" value="">
        <param name="meta_data8" value="">
        <param name="baseurl" value="111">
        <param name="random" value="111">
      </object></td>
  </tr>

</table>

</body>
</html>
 
  对代码的说明:之所以要使用Adodb.Stream,是因为直接取得的内容始终达不到想要的效果,ep的位置始终要比预期的长很多,而我试过用instrb,midb等函数同样得到另人迷惑的结果,所以无奈之下出此下策,还望高手指点(哎哟,我怎么感觉酸不溜疚的哦)。当然只针对当前地点有效,其它的适当修改就行,甚至可以直接生成页面,并记录到数据库,成为自己的,用上面的东西加写数据库应该够了吧。
  要防止Dll被下载也不难,对于IIS来是说可以加个.dll的ISAPI扩展,可执行文件随便选个Dll文件动作限制为“空”(什么都行,反正乱输入就可以了。)。要是Dll不为外站工作嘛,就不敢乱说了。防止新闻被窃取对付象这样的窃取方法,检查request.ServerVariables("HTTP_REFERER")不是本站的哄出去就可以了。
  另外,由于本人大学没毕业,又是学打铁的,所以肯定有很多垃圾的地方,请不吝指正,谢谢。