外汇110网站上做的这些曝光,手机网站建设的图片,国内做优秀的农业信息网站,凤岗镇网站仿做12306抢票的关键拼的就是整点出票的速度#xff0c;快的几秒钟#xff0c;慢的几分钟#xff0c;本文提供终极抢票攻略#xff0c;通过多线程扫描上万个CDN#xff0c;来大幅度提升出票速度。准备一#xff1a;需要了解CDN和切站的机制#xff0c;请参考#xff1a;分享… 12306抢票的关键拼的就是整点出票的速度快的几秒钟慢的几分钟本文提供终极抢票攻略通过多线程扫描上万个CDN来大幅度提升出票速度。 准备一需要了解CDN和切站的机制请参考 分享12306秒票杀手锏源码http://www.cnblogs.com/guozili/p/3512490.html分享12306抢票心得最终篇http://www.cnblogs.com/guozili/p/4166675.html 准备二需要熟悉12306最重要的查询接口和下单接口及传入的参数规范 /otn/leftTicket/queryX 和 /otn/leftTicket/submitOrderRequest具体流程请参考解析12306订票流程 http://blog.csdn.net/lzqwebsoft/article/details/18674635 12306 CDN研究机制一 12306对kyfw.12306.cn用到了全站CDN缓存至少上万的CDN IP对于90%的子页面使用了CDN缓存部分动态内容如个人中心CDN将充当代理去12306实际服务器读写数据请百度“cdn回源” 12306 CDN研究机制二 官方网站的自动查询每次都会命中同一台CDN拿到的都是CDN缓存数据缓存时间2分钟所以运气好的话整点放票较快就能刷出票一般情况下要等几十秒才能看到出票参考下图 12306 CDN研究机制三 360抢票王每次查询使用不同的CDN通过内置dll插件实现每次查询映射不同的IP参考下图 12306 频繁刷票容易被踢的猜测 每次查询都会AJAX Log一下请参考上面截图如果登录状态下cookie的token就被记录上传了所以登录状态下刷票容易被踢所以查询时动态修改hosts切CDN切站点也容易被踢 12306 关于secretStr 查询返回的每个车次结果都会有个secretStr加密了此车次的所有相关信息后续用于提交订单用此secretStr几分钟后会过期所以关键就是放票整点后能快速刷出这个secretStr参考下图 12306 查询设计思路 启用匿名查询查询结果后返回的secretStr交给登录的帐号做订单提交目前市面上的抢票神器或收费软件都是采用了此机制 启用多个线程主线程帐号登录其他线程并发匿名作业轮询请求不同的CDN查询票源查到有票的secretStr塞给主线程进行订单提交集成收费打码API自动化点触验证码实现多开无人值守抢票 终极设计思路 做Winform及界面工作量太大这里提供简单的定制方案和一些设计思路服务端自己建个本地的IIS Web站点去匿名轮询请求不同的CDN查询票源返回secretStr客户端浏览器登录状态12306任何一个页面控制台或插件植入js脚本AJAX长轮询去请求服务端请求到secretStr做订单提交 终极设计思路之服务端 自己建个本地的IIS Web站点或在公网上建或商业化做云服务器分布式的查询此网站提供接口如http://127.0.0.1/GetSecretStr...此接口的实现启动多线程去上万个CDN去查询指定车次日期的票源查到secretStr马上返回给客户端 帮助获取kyfw.12306.cn的CDN ip可以去chinaz上去获取大概有上千个 帮助实在不够我能提供fishlee的一个IP列表有上万个 终极设计思路之服务端的关键技术 http://www.cnblogs.com/dudu/archive/2012/07/18/webrequest_dns.html这个技术不用修改hosts使用WebRequest能映射不同的IP参考下图 终极设计思路之客户端 浏览器登录状态控制台或插件植入js脚本AJAX长轮询去请求服务端请求到secretStr做订单提交到最后的订单提交页用插件自动勾选人座位自己手动输入验证码提交参考下图 测试结果整点出票秒数根据自己以前的N次经验 3-10秒此文思路多线程在10秒内对1万个CDN进行查询5-20秒某收费软件采用了后台多线程查询CDN10-30秒fishlee的NET订票助手单线程每隔1秒尝试不同CDN15-60秒360抢票王也是单线程但CDN数量不够20-120秒官方网站CDN一般1分钟内不会变缓存严重 最终实现效果图并附上测试代码12306.zip 更多平台插件 最新更新 验证码问题 参考http://bbs.fishlee.net/thread-10058-1-1.html现在没时间研究 工具 加入验证码输入功能工具源代码在https://github.com/guozili/12306基本思路可以实现下 console工具 要输入验证码时发送验证码图片二进制(socket)到 verifycodeWPFInput.exe(实现一个WPF程序弹出来)去点击然后返回验证码坐标给console 转载于:https://www.cnblogs.com/guozili/p/6144561.html