最近朋友帮我他在线投票了。 因为网站限制了IP (这里其实是骗人的),所以我向他订购了。 但是,突然,第一名的票数比后面的人多得多,差3-4百票吧。 我想第一个人一定是有人帮我投票的,那就失去了投票本身的意义。 于是我故意想做坏事。 考虑编写和完成自动投票的程序。 会不会动武? )
我分析了投票的网站。 以上限制了IP,但据我的分析,不是限制IP,而是使用cookie中记录的投票信息。 清除cookIE就可以重新投票,但这样每次都需要手动调整ie的参数,会很累很累。 因此,我想你能不能自动删除COOKIES,自动提交页面并提交。
以上分析表明,进行此过程需要两个步骤。
1、自动清除COOKIES
2、自动提交表格
让我们先看看第一个
我查过了。 这是MSDN的网站。 有HI Script的栏。 介绍了许多运行WINDOWS脚本的技术,其中有关于如何操作IE临时文件夹和COOKIES目录的功能。
33558 www.Microsoft.com/China/TechNet/community/script center/resources/hey 1102.mspx
根据里面的方法,我为了用C#删除COOKIES写了以下代码。 应该注意的是,因为不能删除其中的index.dat文件,所以进行了删除所有他想的东西的处理。 代码如下所示。
const int cookies=33;
Shell32.FolderobjFolder;
shell32.folderitemsobjfolderitems;
Shell32.ShellClassobjShell;
obj shell=new shell32.shell class (;
objfolder=obj外壳. namespace(cookies );
objFolderItems=objFolder.Items (;
foreach (shell32.folderitemobjfolderiteminobjfolderitems ) )。
{
if (! ' index.dat '.equals (objfolder item.name.to lower () )
{
file.delete (objfolder item.path.tostring ) );
}
}
第一步解决了,必须解决第二个问题。 我查了一些资料。 我发现有两种方法可以解决我的问题
1、使用web客户端
这种方式可以直接执行页面提交这种方式,进行页面控制,并且可以返回提交结果页面的内容,速度很快。
2、使用网页浏览器
这类似于自己创建浏览器,以控制和发送页面中的对象。 这样的速度有点慢。
所以我决定使用第一种方法。 代码如下。
WebClientwc=new WebClient (;
string postData=' username=xxx '
WC.headers.add(content-type,) application/x-www-form-urlencoded );
byte [ ] b return=WC.upload data (http://www.XXX.XXX/vote.ASP )、POST )、encoding.default.getbytes ) postdates
//messagebox.show (encoding.default.getstring ) breturn );
wc.Dispose (;
看到了吧。 这样就可以了。
之后用一个timer循环执行就可以了。
哈哈,一切都这么简单。 但是,我认为那有公平原则。 请不要用在不好的地方。 当然,用来惩戒作弊的人除外