`
sangei
  • 浏览: 336406 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

新版12306的刷票故事

阅读更多

     本屌丝家在异乡,逢年过节免不了与12306你侬我侬一番。每次都有种力不从心的赶脚,之前因为时间关系,没有深究12306如此神奇的原因,最近仔细研究了网上两位高人关于新版12306抢票工具的代码,在学习的同时,谈谈自己的感想先。话不多说,记录如下:

    第一位的原贴地址是:http://www.cnblogs.com/leefan/p/3521629.html,这位仁兄的想法很是独到,他将一些在前端的判定省略,从而很巧妙的借助已有jquery函数巧妙绕过了验证码的输入,达到自动提交不用输验证码的效果,并且修改一个参数,就可以将自动刷票的间隔时间随意更改。本屌是js的初学者,在对原作者无限崇拜的同时,发现由于作者是顺着12306的思路,所以用了两次ajax通信,第一次是验证码验证,第二次是提交购票信息,第一次还将ajax设置为同步,所以有些耗时。那么既然是欺骗后台,为什么不直接删掉第一次验证码的ajax通信呢,岂不是可以节省更多时间,带来更多机会?于是本屌抱着试一试的态度,将第一次通信省略,发现可行。当我有点小激动的想去把第二次通信删除时,返回如下页面,(这不是传说中的维护画面吗?),本屌后来想通了,因为你这个账号是没有在服务器端有任何的订购记录,所以不会给你订票的,有可能每晚23点以后就把这第二个ajax的调用给关闭,使我们没有办法继续购票,如果这样的话,那么23点之前订购成功的票,是可以在23点45分之前付款就行了(待验证)。有点跑偏了,回到正题,所以本屌最后在原作者基础上改过代码如下,至于如何运行,本屌就不多说了,毕竟原作者非本人,但是如果要在firefox上运行,我遇到的问题是需要把$统统改为jQuery,否者FF会报不识别函数的错误。

 

autoSearchTime=600;
$("#randCode2").unbind('keyup');
function bO() {if ($("#sf2").is(":checked")) {return "0X00"} else {return "ADULT"}};
$("#randCode2").on("click",
     function(bS) {
        $("#back_edit").trigger("click");
        $.ajax({
          url: ctx + "confirmPassenger/confirmSingle",
          type: "post",
          data: {
           passengerTicketStr: getpassengerTicketsForAutoSubmit(),
           oldPassengerStr: getOldPassengersForAutoSubmit(),
           tour_flag: "dc",
           randCode: $("#randCode").val(),
           purpose_codes: bO(),
           key_check_isChange: md5Str,
           train_location: location_code
          },
          dataType: "json",
          async: true,
          success: function(bR) {
             otsRedirect("post", ctx + "payOrder/init?random=" + new Date().getTime(), {})
          },
          error: function(bR, bT, bS) {
           return
          }
         })
        $("#randCode2").removeClass("inptxt w100 error").addClass("inptxt w100");
        $("#i-ok2").css("display", "block");
        $("#c_error2").html("");
        $("#c_error2").removeClass("error");
        return
});
setInterval(function(){
 if($("#autosubmitcheckticketinfo").css("display")!="none"){
  $("#randCode2").trigger('click');
 }
},400);

    

     第二位大神的思路同样很赞,原贴地址是:http://www.cnblogs.com/guozili/p/3512490.html,他实现了CDN的自动切换,事实和理论证明,这样是管用的,我们不知道哪个CDN的缓存最先更新,或者简单理解:余票信息在主服务器上是一定的,那么这些信息更新到各地的CDN时间不一,有的几秒钟 ,有的几分钟,相信大家都有这样的刷票经历:和朋友第一时间一起开始刷票,可是人家那都买完了,自己还是没有显示一张票,不是网络慢,不是电脑差,更不是你人品不行,而是你被路由到一个更新慢的CDN了(好像也是和人品有点关系)。原作者切换hosts ip的动作我是通过在VS上搭建一个ASP web 应用程序实现的,大家记得把port设置成1111就行了,或者改js里的port寻址。我没有改什么东西,只是觉得把host 更换频率可以放快点(原来代码是5秒),另外建议大家把两位大神的方法一起用,那效果是刚刚的(既自动换CDN,又不用输验证码)。

     其实想想12306也很不容易,哪个网站这样糟蹋也消受不起,我能理解将一些判定放在前端是为了后端减压,可是咱毕竟拿了那么多钱在整网站,把钱用来加强一下后端处理能力,也不至于网络黄牛漫天飞吧,最后希望每个人都能买到满意的火车票,过个胡吃海喝的大年!

     此贴为学习贴,仅此而已。发帖的时机有些晚,还是希望能帮到大家。

  • 大小: 72.1 KB
分享到:
评论

相关推荐

    基于Python与Shell的12306智能刷票与订票系统设计源码

    该项目是一款基于Python和Shell编写的智能12306刷票与订票系统设计源码,包含69个文件,其中包括45个Python脚本文件、7个PNG图片文件、3个Markdown文档、2个Shell脚本文件、2个文本文件、2个JPEG图片文件、1个Docker...

    基于Python和Shell的py12306智能刷票订票设计源码

    该项目是一款基于Python和Shell开发的py12306智能刷票订票设计源码,包含75个文件,其中包括49个Python源文件、5个PNG图片文件、4个Markdown文件、3个文本文件、2个HTML5文件、2个JPEG图片文件,以及Docker和Git相关...

    基于Python和Shell的12306智能刷票订票设计源码

    该项目是一款基于Python和Shell开发的12306智能刷票和订票系统源码,包含66个文件,涵盖40个Python脚本、6个PNG图片、3个XML配置文件、2个Shell脚本、2个JPEG图片以及少量其他类型文件。该系统旨在提高用户购票效率...

    基于Python和Shell的12306智能刷票与订票系统设计源码

    本项目是一款基于Python和Shell语言的12306智能刷票与订票系统设计源码,整体包含68个文件,涵盖42个Python脚本、6个PNG图像文件、3个XML配置文件、3个Markdown文档、2个Shell脚本、2个JPEG图像文件、各1个Docker...

    基于Python和Shell的12306智能刷票与订票设计源码

    该项目是一款基于Python和Shell的智能刷票与订票系统,包含66个文件,其中Python代码文件40个,Shell脚本2个,并涉及XML、Markdown、图片等辅助文件。该系统旨在实现高效便捷的12306在线购票服务。

    基于Python与Shell脚本结合的12306智能刷票与订票系统设计源码

    该项目是一款融合Python与Shell脚本的12306智能刷票与订票系统设计源码,总计包含69个文件,涵盖47个Python脚本、5个PNG图片文件、4个Markdown文件、2个Shell脚本、2个文本文件以及少量JPEG图片、Docker配置、Git...

    12306选择上下铺技巧大全.doc

    首先,新版12306网站提供了“更多选项”功能,让乘客在填写乘车人、日期、车次和席别等基本信息后,可以享受到动态刷新和自动提交服务,即自动刷票功能。同时,乘客还可以在此功能中选择自己所需的席别,包括上铺、...

    12306订票!

    7. **核验码与图形验证码**:为防止恶意刷票,12306会使用核验码或图形验证码,用户在购票时需要正确输入以验证身份。 8. **抢票插件与12306官方APP**:由于热门线路车票往往在开售后很快售罄,一些第三方软件开发...

    12306验证码JAVA DEMO

    在12306购票系统中,验证码是为了防止恶意机器人自动刷票而设置的一种安全机制。它的设计通常包括图像扭曲、字符混淆等手段,以增加机器识别的难度。 在Java中处理12306验证码涉及到以下几个关键知识点: 1. 图像...

    12306 自动订票

    此外,描述中还暗示了开发者可能有处理验证码的技术能力,这在自动订票过程中是一个重要的环节,因为12306网站为了防止恶意刷票,通常会设置验证码验证用户身份。 标签“12306”和“订票”进一步明确了项目的核心...

    12306订票助手软件版 (测试版)

    尽管12306订票助手软件版存在局限,但其核心的自动刷票功能仍有一定吸引力。通过设定购票条件,如出发地、目的地、日期、车次等,软件会自动监控余票情况并在有票时立即提交订单,这在热门路线和节假日抢票时尤为...

    js侧滑验证|仿斗鱼|仿12306|仿淘宝

    滑动验证是一种用户交互式的安全机制,用于防止自动化脚本或机器人进行恶意操作,如刷票、刷赞等。本文将详细介绍js侧滑验证的原理、实现方法和相关应用。 滑动验证的基本工作原理: 1. **生成随机图像**:系统...

    12306订票助手——51gohome

    【12306订票助手——51gohome】是一个专为12306中国铁路客户服务中心设计的辅助工具,旨在帮助用户更高效、便捷地进行火车票预订。12306是中国官方的铁路票务平台,而51gohome订票助手则是第三方开发的插件或应用,...

    12306免验证码抢票工具 12年10日亲测可用C#源码

    在高峰期,由于访问量巨大,购票系统常常会采取验证码机制来防止恶意刷票,但这也给普通用户带来了一定的困扰。 “免验证码”功能:在2012年的背景下,这个工具可能利用了当时的12306网站某些漏洞或机制,能够跳过...

    12306抢票助手如何使用.docx

    12306抢票助手使用指南 在本文中,我们将详细介绍如何使用12306抢票助手插件来抢票,提高抢票的成功率。下面是具体的使用指南: ...希望大家都能通过本文,学会使用木鱼的新版12306方法,抢到回家的车票!

    开源项目-V-I-C-T-O-R-12306.zip

    许多开源项目针对12306网站提供了各种解决方案,比如优化购票流程、自动刷票插件等。 12306-master文件夹很可能是项目的主要代码仓库,其中包括了项目的源代码、文档、测试用例和其他相关资源。在这个文件夹内,...

    12306订票助手 4.4.1

    首先,12306订票助手的一大亮点是其自动刷票功能。用户只需设置好出发地、目的地、日期以及期望的车次类型,插件就会在后台持续监控票务信息,一旦有余票放出,会立即通知用户并自动填写验证码,快速提交订单,极大...

    12306抢票抢票抢票抢票

    首先,12306网站使用了验证码技术来防止机器人自动刷票。这种验证码设计是为了确保购票者是人类,而不是自动化程序。验证码通常包含扭曲的文字或数字,用户需要正确识别并输入才能继续操作。近年来,12306还引入了...

Global site tag (gtag.js) - Google Analytics