iPhone5批量订购软件

iPhone5终于要在大陆上市了,中国人享受什么都比别人晚。人家的孩子都会叫爹了,你还没破处呢。

处早晚会破的,所以现在开始做准备,迎接iPhone5到来的快感!

去年4S上市,引发黄牛抢购。那时就开始研究实现4S的的批量订购,可惜当时苹果对中文的Apple store加了诸多限制,最终没能测试成功。

去年4S的情况是,网页版的Apple store一直显示无货,APP版的store偶尔有货,几率很低,而且由于大家都在刷,经常会弹出错误。总之很难。

我想要这样的感觉

  1. 程序自动模拟客户端发出请求。
  2. 若请求成功,通过对关键字的判断确定是否有货,并通知我
  3. 若有货,自动进行订购
  4. 突破重重限制

How to?

去年的时候很奇怪,无论我使用英文的Apple store APP,还是设置代理,只要选择中国大陆的体验店。那么就会经常性的弹出错误。而选择其它地区的体验店,无论有货无货,都能收到正常的提示。而且无论选哪儿,请求的都是同一IP。说明错误不是因为过载,十有八九是苹果的限制。

我们先假设今年不会出现这个情况,在这个前提下找感觉。

让程序装成Human连接apple store很简单,抓包便是,web版的好办,APP版的也好办,在iphone上抓包就行了。其实iPhone有更简单的抓包办法,我谁也不告诉。

判断有货无货很简单,找关键字就行了。

订购环节是最关键的,麻烦的是ssl证书问题。而且网页版的apple store自动订购我们只能选择国际信用卡,国内信用卡和借记卡是不行的,因为需要跳转到网上银行进行支付。国际信用卡写号码就行了。由于苹果限制了每个卡的购买数量,所以我们需要很多很多个信用卡,还有很多很多个apple ID,前者亲戚朋友借,后者手工注册吧。程序会自动读取信用卡信息,填表提交。(这一步骤我没测试,管它呢)

但若使用APP版的apple store,那么就不需要信用卡了,订购成功拿着身份证去体验店拿机器就行了。这里得注意身份证的问题~

如果我们一个程序一个IP开1000个线程,一瞬间这么多请求显然是不行的,所以使用一大堆的代理。不知道苹果会不会判断IP是否为代理,保险起见,我们使用SSH-D就好(没在程序中实现,但可以选择socks代理,然后本地写个批处理什么的用plink不断的切换,笨办法,线程多了不好用,切不过来。)。试验中我使用的是GAE上的proxy,省事而且免费,用十个应用就有可能是十个IP,只不过ip的AB段相同,但想当然苹果也不会限制到B段。

虽然程序执行完毕后会将订购的结果写入日志供查看,但我们不可能24小时守在电脑旁,所以增加了短信通知功能,利用的飞信,只能是中国移动号码。

话说我居然没看到验证码?有验证码的话就只能守在电脑前一次一次填了,多线程就没用了,但好歹比手工的快。

最后心情好,把apple上所有的产品都弄了一遍,程序就不止能订购iPhone5了。

结论

黄牛都是坏人,催生坏人的是不自由的市场。

由于我没那么多信用卡,也没那么勤奋,所以并没有进行完整的测试。仅仅是beta,甚至半成品,等iPhone5出来实战一下试试吧。给程序起名的时候,最开始想的是“you are the apple of my eye”,觉得太文艺了,于是改成了现在这个——去王大爷家偷苹果。因为我永远忘不了小时候去果园偷果子被狼狗追的场面。

TAG:
下一篇: 上一篇:

本站文章,如非注明,皆为原创。采用 《知识共享署名-非商业性使用-相同方式共享 3.0》许可协议进行许可。转载需注明本文链接并保证链接可用。本站法律顾问:龚婉容律师

Back to top
逗妇鲁公众号
逗妇鲁公众号