刚收到2018年google邀请确认函,就一个二维码。好了,凭这个二维码9月20日进场。注意google2018年开发大会中用到的签到二维码和数字二维码其实是一个。
本文只是兴趣探讨,各位看官不要还是不要扰乱秩序呀,没有签到码的小伙伴就看直播吧。。。
那么好了,根据规律二维码由4个字符组成,每个字符由字母,数字随机生成。所以这里就可以通过简单的随机生成函数跑一堆的数字码即可。跑出来的数字码在云端进行一一匹配,每个数字码通过下面链接拼接成一个二维码图片的链接,如果这个码存在,则肯定说明该码可以用,也就是跑出一个邀请码。。。
原理介绍好了,下面就是写个小脚本跑了:
import csv
import os
from time import sleep
import random
from urllib import request
import string
project_dir="C:/Users/dell/Desktop/google-party"
img_dir=project_dir+"/images"
data_dir=project_dir+"/data"
def downloadImg(imgUrl):
try:
headers = {
'User-Agent' : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
'Referer':'https://gdd-experience.actionone.cn'
}
req=request.Request(url=imgUrl)
for i in headers:
req.add_header(i,headers[i])
res=request.urlopen(req)
return res
except Exception as err:
return 0
# finally:
# print("pic:"+ imgUrl)
def __init__():
if(os.path.exists(img_dir)!=True):
os.mkdir(img_dir)
if(os.path.exists(data_dir)!=True):
os.mkdir(data_dir)
def create_rand(num=100):
mylist1=list()
for i in range(num):
mylist1.append(''.join(random.sample(string.ascii_letters + string.digits, 4)).lower())
return mylist1
def main():
file=data_dir+"/result.csv"
result=list()
for i in create_rand(1000):
url_path="https://gdd-experience.actionone.cn/qrcode/"+i+".png"
res=downloadImg(url_path)
if res!=0:
result.append(url_path)
print(result)
main()
目前我随机1000个就跑出一个有效的邀请码了,所耗时间也就1-2分钟吧。。。
这其实也可以大概算出发了多少邀请码,随机事件符合正态分布,4位随机码总事件数为36*36*36*36,除以1000即可算出大概发送了1679个邀请码。当然这个计算也不是很准,1000个出1个,那么这1个就是小概率事件。所以说要仔细分析,还需要继续跑5000次/10000次,等等计算更靠谱。
博客地址:http://blog.yoqi.me/?p=13808
有沒有多餘的邀請碼QAQ