网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C#应用
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.捕捉摄相头的数据流 .
.C#中使用DTS来导入数据及相关问题 .
.用C#开发智能手机软件:推箱子(二.
.c#中分割字符串的几种方法.
.C# 2.0中的上传多个图片合并及存.
.用C#实现在PowerPoint文档中搜索.
.在C#中编写多线程应用程序,简单.
.Visual C#创建和使用ActiveX组件.
.C#中的函数重载.
.C#列出局域网中可用SQL Server服.
.C#3.0 中对象初始化器(Object In.
.对C#委托及事件委托的理解.
.自定义应用程序配置文件(app.co.
.存储过程中调用C#写的DLL.
.获取cpu序列号,硬盘ID,网卡MAC地.
.C#中实现DataGrid双向排序.
.关于C#中的DateTime类型的细节问.
.C#中实现随机时间的获取.
.用C#开发.NET CF 蓝牙通信模块.
.Sql server存储过程和C#分页类简.

C#投票作弊程序制作思路

发表日期:2006-6-25


最近有个朋友 让我帮他在线投票,因为站点是限制IP的(这里其实是骗人的),我就帮他点了一下,可是我突然发现,第一名的投票数比后面的人多的很多,大概差3-4百票吧。我就觉得,第一个人肯定是找人帮忙投票了,但是这样就失去了投票本身的意义了。于是我就想故意搞恶一下。想到写一个自动投票的程序来完成。(算不算以暴制暴啊?)

我分析了投票的网站,上面说是限制IP的,但是根据我的分析,并不是限制IP,而是使用了COOKIES记录的投票的信息,而如果你清除了COOKIES就可以再投票了,不过这样需要每次去手动调整IE的参数,累都累死了。于是,我想能不能自动删除COOKIES并且自动提交页面提交呢?

通过以上的分析,我们知道了,作这个程序,需要两个环节:
1、自动清除COOKIES
2、自动提交表单

首先我们先看看第一个
我查询了,MSDN的网站,里面有个HI Script的专栏。介绍了很多执行WINDOWS脚本的技术,其中就有关于如何操作IE临时文件夹和COOKIES目录的功能。
http://www.microsoft.com/china/technet/community/scriptcenter/resources/hey1102.mspx

根据里面的方法,我在C#中写出了以下代码,用来删除COOKIES,要注意的是,其中的index.dat文件是无法删除的,所以我作了一个处理,删除了除他以为的所有内容,代码如下:
            const int cookies = 33;
            Shell32.Folder objFolder;
            Shell32.FolderItems objFolderItems;
            Shell32.ShellClass objShell;
           
            objShell = new Shell32.ShellClass();
            objFolder = objShell.NameSpace(cookies);
            objFolderItems = objFolder.Items();
            foreach(Shell32.FolderItem objFolderItem in objFolderItems)
            {
                if(!"index.dat".Equals(objFolderItem.Name.ToLower()))
                {
                    File.Delete(objFolderItem.Path.ToString());
                }
            }

第一步解决了,该解决第二个问题了,我查询了一些资料。发现有两种方式可以解决我的问题
1、使用WebClient
这种方式是直接执行类似页面提交的方式,进行页面的控制,并且可以返回提交结果页的内容,速度快。

2、使用WebBrowser
这种方式类似于自己做了一个浏览器,然后控制页面中的对象进行提交。这样的速度有点慢。

所以我决定用第一种方式,代码如下:
            WebClient wc = new WebClient();
            string postData = "username=xxx"
            wc.Headers.Add("Content-Type","application/x-www-form-urlencoded");
            byte[] bReturn = wc.UploadData("http://www.xxx.xxx/vote.asp","POST",Encoding.Default.GetBytes(postData));
            //MessageBox.Show(Encoding.Default.GetString(bReturn));
            wc.Dispose();
看到了吧,这样就可以了。

剩下就是在用一个timer来循环执行就可以了。

哈哈,一切都是这么简单。不过还是觉得这么做有背公平的原则。希望大家不要用到不好的地方,当然用于惩戒作弊的人除外

http://voodooq.cnblogs.com/archive/2006/06/24/434767.html

上一篇:C#中计算两个时间的差 人气:13032
下一篇:了解c#2.0中的Anonymous Methods(匿名方法) 人气:6372
浏览全部C#的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐