MENU

抵制“抢课黄牛”,抢课方法大公开

2018 年 03 月 07 日 • 技术流

转载前言:学校贴吧里有一个 ID 为“指针未定义”的,发了一个帖子,很有干货。我见证了它被加精,到后来又被删帖。幸而我有那篇帖子的存档,决定发布于此。

我是一名计通人。前段时间看到一自称“计通大佬?”的用户在贴吧发帖,提供付费抢课服务,我有一句脏话要讲。但讲出来就更抹黑学院了,我还是不讲了。他/她打着这个名头,肯定是有理由的:或许有人已经听说了,有抢课脚本/外囧挂的事。

今天要来给大家揭开“抢课外囧挂”的神秘面纱,顺便告诉大家一个抢课的诀窍。一切都是为了让选课更加公平有序。

在此之前,必须要给大家明确一下我的态度。

抢课黄牛——课程买卖错在哪?

有些同学觉得,课程的交易是买卖双方自愿的事情,一个愿打,一个愿挨,犯不着上纲上线。也有的人经过思考,认为这是市场机制下的一个正常经济现象。甚至有人会说,凭本事抢的课怎么就不能赚囧钱了——这话倒颇有些“凭本事借的钱为什么要还”的意味了。

大家都知道,课程是有限的。某些人通过不正当的技术手段,侵占了教务系统的课程资源和服务器资源(对应于囤积课程和直接抢课),影响到了其他同学的选课。并且,课程这种资源并不应完全受市场的支配,而是人人都应当平等地享有的权益。因而,抢课黄牛,就算正常,也不正当,就跟火车票黄牛一样。

为了促进选课公平,下面我来揭示他们一般使用的技术是怎样的。

真假“大佬”——如何用技术手段做到抢课的?

这实际上涉及到 HTML 和 HTTP 通信——不用看到英文就害怕。想象一下你正在注册一个网站,需要填写用户名、密码等信息,然后点击“提交”,就完成了一个注册账户的操作。

选课也是如此,在你点击课程确认后,按了提交,也完成了一个类似的操作;这种操作叫作“提交表单”。学习了网页基础后,你就会学到这种操作。浏览器在你提交后,会向服务器发送一些数据。只要知道选了哪些课发送了哪些数据,就可以观察规律,之后我们仿造一份这样的数据发送过去就行了。如果要抢某节课,我只需要持续向服务器发送这些数据就行了。

这种方法太直接,比较暴力,容易被服务器发现。于是可以改进一下,在有课的时候才提交,这样我就需要监测有没有课。比如,我可以持续刷新网页,判断那个圆框框可以点选(就是说它不是灰色的,大家都懂的),那么就立即发送一份对应的数据过去,就行了。大家注意到了,这就需要不间断地刷新网页;如果间隔过长,就容易错过退选出来的课程;间隔过短,就会对教务系统服务器造成压力,也影响其他同学抢课,这也是抢课脚本的一宗罪。

也许有人用过按键精灵,但它是一套简单的鼠标点击。使用脚本能够简化很多操作,如果直接向服务器提交,那就更相当于走了捷径——你还没来得及点两三个按钮,人家已经在提交了。

课程转移同理。在一个人将要退选之时,启动脚本持续地抢那节即将退选的课即可。

如果有人感兴趣,可以学习一下 HTML 语言和 GET/POST 请求,研究一下选课的网页,试着用 JАVaScript、Python 之类的编程语言去写一个这样的脚本。不要作恶哟。

前车之鉴——大众应该怎么更有效率地抢课?

有人说,那我没有这些技术,作为一个普通人,我应该怎么办?这里教给你们鲜为人知的抢课技巧。那些“选一门就提交一门”的老话就不说了。

其实,教务系统是有很多台服务器的。有些服务器用的人少,而有些服务器爆满了人;打过网游的同学都知道应该选哪个。也有同学注意到,选课的时候自己和身边同学的显示在线人数不一样。有的同学比较顺利地进入了教务系统,而有的一刷新就再也没打开过,扼腕叹息上个学期幸囧运之神的眷顾。其实只是进入到的服务器不一样。

一般我们可能用 http://xk.csust.edu.cn 这个网址选课。这就听天由命了,并且我个人发觉它的分配并不均匀,可能会把一箩筐的人丢到同一个碗里(快到碗里来)。那又没有选择服务器的地方,要如何进入其他的服务器呢?不怕,这里给你列出来(有兴趣的可以自行查询一下 xk.csust.edu.cn 的解析记录)——

10.⑥4.6.5
10.255.65.18
10.255.65.19
10.255.65.20
10.255.65.21
10.255.65.22
10.255.65.23
210.43.177.11
10.⑥4.6.5:8080
10.255.65.18:8080
10.255.65.19:8080
10.255.65.20:8080
10.255.65.21:8080
10.255.65.22:8080
10.255.65.23:8080
210.43.177.11:8080

都使用内网(校园网)访问。请手动复制打开,必要的话修改一下字符变成数字,在每个地址前面添加“http://”。

大家可以多传播一下这些地址。越多人知道,就越公平。选课的时候,可以预先比较一下;必要的时候也可以多登录几个(但是真心不建议你们登录很多个,那样大家可能就全都变卡了)。

亡羊补牢——一直抢不到课怎么办?

如果在低年级抢不到课,也不用过度担忧。在高年级的时候,很多课是有不少剩余的。教务处甚至这样说:

  教务处可以承诺为高年级还没完成任选课学分的学生提供特殊选课的绿色通道,保证其完成相应的选课。

——《关于选修全校性任选课程有关事项的公告》

给学校的建议

上面提到一份《公告》,里面也回应了运用脚本抢课的问题,但是不硬气。这里我想提几点建议。

从技术、短期看,学校应该改善教务系统域名的负载均衡,提高单服务器承受能力。把学生比较均匀地分配到不同 IP 对应的地方去,避免某几个服务器在线人数差距极端地大。

从行政、短期讲,学校可以选取一两个典型的抢课黄牛,给以威慑。他们所采用的技术手段,并不是侦囧查不到的,即便需要人工筛查。

从行政、长期看,学校可以考虑更好的选课制度。这方面其他高校已经有了例子,在此不发表拙见。

以上建议就当抛砖引玉啦。

最后祝大家好运,特别是关注下学期初的补选的同学。

原帖:指针未定义
版权归原作者所有;如有侵权,敬请联系我。并请无视下方版权提示。

添加新评论

已有 1 条评论
  1. 最新地址可在此获取:https://csu.st/thread-6.htm