ASP.Net、C#实现网页小偷程序
在ASP中实现小偷是使用XMLHTTP对象,最近在学习.net时看到了WebClient类,于是将过去用来做小偷的程序改了一下,使用ASP.Net、C#来实现,程序写的比较简单,目的是为了起到抛砖引玉的作者,希望能与各位一起探讨,使之更加完善,下一步我将使之实现根据设置可以获取网页中指定的内容。以下是程序部分,包括在WEB页中的ASP.NET的源程序和C#中的源程序。
ASP.Net (GetWebcontent.aspx)
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Text" %>
<script runat=server>
//***********************************************************
//*
//* 使用ASP.Net实现网站小偷的程序
//* Written by 笑笑 2005-12-11
//* 网址:http://blog.hnce.net
//* Email:hedongyang@gmail.com QQ:5364083
//*
//***********************************************************
void Page_Load(Object sender , EventArgs e)
{
string strurl="http://blog.hnce.net"; //欲获取的网页地址
WebClient myWebClient=new WebClient(); //创建WebClient实例myWebClient
//获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。
myWebClient.Credentials=CredentialCache.DefaultCredentials;
//从资源下载数据并返回字节数组。(加@是因为网址中间有"/"符号)
byte[] pagedata=myWebClient.DownloadData(strurl);
//以下两句每次只要使用一条即可,功能是一样是用来转换字符集,根据获取网站页面的字符编码选择
//string result=Encoding.Default.GetString(pagedata);
//如果获取网站页面采用的是GB2312,则使用这句
string result=Encoding.UTF8.GetString(pagedata);
//如果获取网站页面采用的是UTF-8,则使用这句
//因为我的博客使用了UTF-8编码,所以在这里我使用这句
Response.Write(result); //在WEB页中显示获取的内容
}
</Script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
</body>
</html>
C# (GetWebcontent.cs)
/*
*********************************************************
*
* 使用C#实现网站小偷的程序
* Written by 笑笑 2005-12-11
* 网址:http://blog.hnce.net
* Email:hedongyang@gmail.com QQ:5364083
*
*********************************************************
*/
using System;
using System.Net;
using System.Text;
class GetWebcontent
{
public static void Main()
{
try
{
WebClient MyWebClient = new WebClient();
MyWebClient.Credentials = CredentialCache.DefaultCredentials;
Byte[] pageData = MyWebClient.DownloadData("http://blog.hnce.net");
string pageHtml = Encoding.UTF8.GetString(pageData);
Console.WriteLine(pageHtml);
}
catch (WebException webEx)
{
Console.Write(webEx.ToString());
}
}
}