关于投票机,我觉得应该大力提倡,不然技术的进步还要让步于落后的投票系统,实在让人恶心.(注:投票机不同于病毒,病毒具有破坏性而投票机则不然.)
投票机和手动投票,正如大清时代的土炮和洋炮,我想当时的人们也都十分鄙视洋炮,结果呢?--落后就要挨打!
从正面看,投票机必然淘汰劣质的投票系统,让劣质的投票系统失去公正性,而优秀合理公正的投票系统是根本经得住考验的,这要求开发者开发出健壮的投票系统;只有投票系统的真正健壮,才能保证投票的公正,而不是靠禁止投票机来保证投票的公正性--我想这是每个负责的开发人员都认同的.
综述:投票系统的公正性要靠开发人员而不是投票人员,投票系统的公正必须要用验证码验证,仅仅IP验证是不够的.
一般的投票机是post, 比较严格的投票系统限制IP.
1.IP验证:
IP可以用ADSL操作modem,通过断线,然后连线获取不同的IP
2.验证码:
需要图像方面的处理,这里水平有限,不考虑验证码,若有验证码,需要手动输入;那么就只能算是投票助手,不能算投票机器.
3.投票:
可以用web直接用htm文件post即可.
因此,本文主要探讨自动更换IP并投票的技术实现,仅供技术研究,若造成modem问题或者其他问题,后果自负.
结论:投票系统必须采用验证码才能保证公正,单纯的限制IP还是存在可能被投票机投票的可能.
以下为实现的主要流程:
//提交投票
//处理投票结果
//浏览器后退到投票页面
//重新获取ip
典型时间控制说明:
1.准备:
等待调整:
VoteManager::m_nWaitForChange=1,000ms
可以合并在连线时间中,请参考:
IPManager::m_nConnTime
2.投票:
投票间隔:300ms,可以忽略
3.查找:
查找投票结果:
VoteManager::m_nWaitResultSeconds=10,000ms
该时间总是小于10s,这是等待投票后的结果的时间,一般可以不计.
4.关闭连接:
单击modem的断线按钮的时间:
IPManager::m_nCloseTime=3,000ms
5.刷新页面:
单击关闭连接后,会单击Esc来取消单击来终止断线响应,然后刷新页面:
IPManager::m_nRefreshTime=8,000ms
如果刷新响应很慢,可以调整到15s,这个是最关键的一个参数.
6.打开连接:
单击modem的连线按钮后的等待连线时间:
IPManager::m_nConnTime=4,000ms
典型投票周期:1+3+8+4=16s.
声明:
//=======================================================
//投票机器人,2007.1.3,by winlin,loader.cpp 启动入口
//1.自动切换IP
//2.自动投票
//3.不能识别验证码,需要手动输入验证码
//4.作者在如下环境下实现:modem:华为MT800(ADSL)
//说明:仅供技术研究,若造成modem问题或者其他问题,后果自负.
//=======================================================
附件一:投票机源码下载









