12306抢票体验

1..环境:Ubuntu虚拟机+python抢票小程序+Virtualenv沙箱python

2.抢票流程
十一国庆假期,抢票车次G395,放票时间是12:30分,为了能第一时间抢到飘飘,减小登录验证时间,程序定时12:28启动,留2分钟时间进行CDN验证和登录验证码识别,2分钟内cookies不会过时web

3.偏差
昨天测试的定时抢票妥妥的,而后挂起虚拟机,在Windows主机上看了些技术博客,就再没上虚拟机,今天中午12点10分登录虚拟机,看到程序正在运行,有正在轮询CDN验证,可是每次cdn验证都是超时,本觉得是这个时间段抢票的人数多,CDN验证时间久,或者失效也是有可能的。我就从新拷贝了一套程序,另启一个环境,运行,这时不开启CDN,这时候发送获取验证码的时候,服务端返回code=9999,第一感受是否是12306临时在验证码上作了些变更,致使获取不到验证码呢。
我在Windows主机上登录了12306获取验证码,抓包分析了,链接参数都OK,为什么我在Ubuntu虚拟机上获取不到验证码呢?此时已经12:28分了。剩两分钟,就到抢票时间了。然而本身仍是一脸蒙圈,到底问题出在哪里呢,竟然验证码,获取不到,难以想象。
这时排查日志,找到URL,打开浏览器,由于时GET接口,在网页上执行下,而后。。。惊不惊喜,意不意外,虚拟机链接不了网络。。。
前几天虚拟机也遇到过这种状况,而后重启WIndows主机,OK,能够上网了,这时已经12:29了,搞毛线。没办法,只能重启主机,进入到虚拟机,切入到环境,运行程序,12:31了,却是登录很顺利,然而,这时候仓库已经空了,真是瞬秒,倒也是在想象之中,也就几秒中吧,能第一时间get一张ticket。此次抢票经历,贼尴尬!!!
这里写图片描述
4.虚拟机不能上网解决方法小程序

a.查看文件配置浏览器

b.查看虚拟机网络配置方式cookie

c.查看硬件驱动是否存在网络

d.配置完文件ifcfg-eth0后重启,无效(虚拟机使用网卡驱动位eth-0)编辑器

e.网络配置方式为nat,无效svg

f.查看本地链接根本就没有虚拟机网卡驱动vmnet0(问题缘由)测试

g.还原虚拟机虚拟网络编辑器,会自动在本地加载驱动日志

h.移除不使用的网络

i.选择nat模式,勾选将主机虚拟适配器链接到此网络

j.勾选使用本地DHCP服务将ip地址分配给虚拟机

k.右键虚拟机-设置-网络适配器-选择自定义:特定虚拟网络nat模式-VMnet0

l.reboot重启以后可上网

m.重启Windows主机