TC官方合作论坛

 找回密码
 立即注册
查看: 16908|回复: 103

第六课 完善注册机 完美版【易键深度出品】

  [复制链接]
发表于 2013-12-31 16:30:54 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 TCwlxiaohei 于 2014-3-15 00:01 编辑

空间 注册机
var 线程句柄1,计数=0,换ip计数=0
功能 初始化()

    URL="http://web.4399.com/user/reg.php"
    网页.转到("浏览器0",URL)

功能结束

功能 开始注册_点击()
    路径=浏览框.获得("浏览框0")
    if(路径=="")
        辅助.消息框("错误!没有定义账号保存路径")
    else
        线程句柄1=线程.开启("注册机.注册账号","")
    endif

    控件.有效("开始注册",假)

功能结束

功能 停止注册_点击()
    控件.有效("开始注册",真)
    线程.关闭(线程句柄1)
功能结束


功能 注册账号()
    var 间隔,账户位数,密码位数,邮箱位数
    间隔=编辑框.获得文本("间隔")*1000
    while(真)
        换ip计数=换ip计数+1
        换ip数=编辑框.获得文本("换ip数")
        if(换ip计数>换ip数)
            注册机.换ip()
        endif
        返回值=网页.加载完成("浏览器0")
        if(返回值==真)
            if(下拉框.得到选项("账户位数")==0)
                账户位数=12
            endif
            if(下拉框.得到选项("账户位数")==1)
                账户位数=13
            endif
            if(下拉框.得到选项("账户位数")==2)
                账户位数=14
            endif
            if(下拉框.得到选项("账户位数")==3)
                账户位数=15
            endif
            if(下拉框.得到选项("账户位数")==4)
                账户位数=16
            endif
            if(下拉框.得到选项("账户位数")==5)
                账户位数=17
            endif
            if(下拉框.得到选项("密码位数")==0)
                账户位数=12
            endif
            if(下拉框.得到选项("密码位数")==1)
                密码位数=13
            endif
            if(下拉框.得到选项("密码位数")==2)
                密码位数=14
            endif
            if(下拉框.得到选项("密码位数")==3)
                密码位数=15
            endif
            if(下拉框.得到选项("密码位数")==4)
                密码位数=16
            endif
            if(下拉框.得到选项("密码位数")==5)
                密码位数=17
            endif
            if(下拉框.得到选项("邮箱位数")==0)
                邮箱位数=12
            endif
            if(下拉框.得到选项("邮箱位数")==1)
                邮箱位数=13
            endif
            if(下拉框.得到选项("邮箱位数")==2)
                邮箱密码位数=14
            endif
            if(下拉框.得到选项("邮箱位数")==3)
                邮箱位数=15
            endif
            if(下拉框.得到选项("邮箱位数")==4)
                邮箱位数=16
            endif
            if(下拉框.得到选项("邮箱位数")==5)
                邮箱位数=17
            endif

            账号=注册机.用户名生成(账户位数)
            密码=注册机.密码生成(密码位数)
            邮箱=注册机.邮箱生成(邮箱位数)
            姓名=注册机.姓名生成(2)
            身份证=注册机.身份证生成()
            网页.输入元素文本("浏览器0",账号,"id:login_name")
            网页.输入元素文本("浏览器0",密码,"id:login_password")
            网页.输入元素文本("浏览器0",密码,"id:relogin_pwd")
            网页.输入元素文本("浏览器0",邮箱,"id:email")
            网页.输入元素文本("浏览器0",姓名,"id:true_name")
            网页.输入元素文本("浏览器0",身份证,"id:sfz")
            辅助.等待(100)
            while(真)
                url = 网页.得到链接("浏览器0")
                if(url=="http://web.4399.com/user/reg.php")
                    网页.点击元素("浏览器0","id:imageField")
                else
                    text=网页.获取元素信息("浏览器0","text","class:quit global_logout")
                    if(text =="退出")

                        写入值=账号&","&密码
                        注册机.写入账号(写入值)
                        网页.转到("浏览器0","http://web.4399.com/user/reg.php")
                        跳出
                    endif
                endif
                辅助.等待(100)
            endwhile
        endif
        辅助.等待(间隔)
    endwhile



功能结束
///////////////////////////////////////////////////////////////////////////////////////////////////
功能 写入账号(写入值)
    路径=浏览框.获得("浏览框0")
    文件句柄=文件.打开(路径)
    文件句柄=文件.打开(路径)
    文件.末尾写入(文件句柄,写入值&"\r\n")
    文件.关闭(文件句柄)
    计数=计数+1
    标签.设置文本("信息提示",写入值&"注册成功"&"|||||||||已经注册成功:"&计数&"个"&"||||||||||||准备注册下一个......")
功能结束

功能 换ip()
    错误值=网络.断开("宽带连接")//等待15秒后断开连接
    如果(错误值==-1)
        标签.设置文本("信息提示","连接断开,准备重新拨号......")
        辅助.等待(1000*5)
        宽带账号=编辑框.获得文本("账号")
        宽带密码=编辑框.获得文本("密码")
        错误值= 网络.拨号("宽带连接",宽带账号,宽带密码)
        标签.设置文本("信息提示","请稍等,正在拨号中......")
        辅助.等待(1000*20)
        如果(错误值==0)
            标签.设置文本("信息提示","拨号成功,准备继续注册......")
            换ip计数=0
        如果结束
    如果结束

功能结束

///////////////////////////////////////////////////////////////////////////////////////////////////
功能 用户名生成(参数)
    var 大小,结果,结果2,位数
    英文数字="1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"
    字符串.分割(英文数字,",",英文数字)
    数组空间.大小(英文数字,大小)
    for(位数=0;位数<参数;位数++)
        n=辅助.随机数(0,35)
        结果=英文数字[n]
        结果2=结果2&结果
    endfor
    返回 (结果2)
功能结束

功能 密码生成(参数)
    var 大小,结果,结果2,位数
    英文数字="1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"
    字符串.分割(英文数字,",",英文数字)
    数组空间.大小(英文数字,大小)
    for(位数=0;位数<参数;位数++)
        n=辅助.随机数(0,35)
        结果=英文数字[n]
        结果2=结果2&结果
    endfor
    返回 (结果2)  
功能结束

功能 邮箱生成(参数)
    var 大小,结果,结果2,位数
    英文数字="1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"
    字符串.分割(英文数字,",",英文数字)
    数组空间.大小(英文数字,大小)
    for(位数=0;位数<参数;位数++)
        n=辅助.随机数(0,35)
        结果=英文数字[n]
        结果2=结果2&结果
    endfor
    返回 (结果2&"@163.com")
功能结束

功能 姓名生成(参数)
    var 姓大小,名大小,结果1,结果2,姓结果,名结果
    姓 ="赵、钱、孙、李、周、吴、郑、王、冯、陈、褚、卫、蒋、沈、韩、杨、朱、秦、尤、许、何、吕、施、张、孔、曹、严、华、金、魏、陶、姜、戚、谢、邹、喻、柏、水、窦、章、云 苏、潘、葛、奚、范、彭、郎、鲁、韦、昌、马、苗、凤、花、方、俞、任、袁、柳、酆、鲍、史、唐、费、廉、岑、薛、雷、贺、倪、汤、滕、殷、罗、毕、郝、邬、安、常、乐、于、时、傅、皮、卞、齐、康、伍、余、元、卜、顾、孟、平、黄、和、穆、萧、尹、姚、邵、湛、汪、祁、毛、禹、狄、米、贝、明、臧、计、伏、成、戴、谈、宋、茅、庞、熊、纪、舒、屈、项、祝、董、梁、杜、阮、蓝、闵、席、季、麻、强、贾、路、娄、危、江、童、颜、郭、梅、盛、林、刁、钟、徐、邱、骆、高、夏、蔡、田、樊、胡、凌、霍、虞、万、支、柯、昝、管、卢、莫、柯、房、裘、缪、干、解、应、宗、丁、宣、贲、邓、郁、单、杭、洪、包、诸、左、石、崔、吉、钮、龚、程、嵇、邢、滑、裴、陆、荣、翁、荀、羊、于、惠、甄、曲、家、封、芮、羿、储、靳、汲、邴、糜、松、井、段、富、巫、乌、焦、巴、弓、牧、隗、山、谷、车、侯、宓、蓬、全、郗、班、仰、秋、仲、伊、宫、宁、仇、栾、暴、甘、钭、历、戎、祖、武、符、刘、景、詹、束、龙、叶、幸、司、韶、郜、黎、蓟、溥、印、宿、白、怀、蒲、邰、从、鄂、索、咸、籍、赖、卓、蔺、屠、蒙、池、乔、阳、郁、胥、能、苍、双、闻、莘、党、翟、谭、贡、劳、逄、姬、申、扶、堵、冉、宰、郦、雍、却、璩、桑、桂、濮、牛、寿、通、边、扈、燕、冀、浦、尚、农、温、别、庄、晏、柴、瞿、阎、充、慕、连、茹、习、宦、艾、鱼、容、向、古、易、慎、戈、廖、庾、终、暨、居、衡、步、都、耿、满、弘、匡、国、文、寇、广、禄、阙、东、欧、殳、沃、利、蔚、越、夔、隆、师、巩、厍、聂、晁、勾、敖、融、冷、訾、辛、阚、那、简、饶、空、曾、毋、沙、乜、养、鞠、须、丰、巢、关、蒯、相、查、后、荆、红、游、竺、权、逮、盍、益、桓、公、万俟、司马、上官、欧阳、夏侯、诸葛、闻人、东方、赫连、皇甫、尉迟、公羊、澹台、公冶、宗政、濮阳、淳于、单于、太叔、申屠、公孙、仲孙、轩辕、令狐、徐离、宇文、长孙、慕容、司徒、司空"
    名 ="梅、阳、林、妮、博、宝、冰、波、贝、才、超、初、成、程、晨、德、富、福、枫、梵、刚、国、桂、罡、华、红、宏、辉、恒、慧、河、鸿、惠、桦、骅、剑、俊、杰、健、嘉、静、洁、娇、纪、宽、苛、珂、灵、兰、良、玲、磊、明、玛、媚、娜、朋、秋、青、琪、勤、晴、容、睿、蓉、胜、烁、堂、唯、伟、威、韦、雯、苇、香、兴、霞、萱、裕、颖、严、勇、阅、彦、宇、韵、燕、艳、乐、雨、洋、志、忠、宗、震、豪、迪、鑫、鹏、俊、军、苋、锦、文、温、明、景、先、芹、聪、辉、德、雪、琳、铭、茗、民、锋、枫、凤、轩、本、山、强、松、杨、阳、白"
    字符串.分割(姓,"、",姓)
    字符串.分割(名,"、",名)
    数组空间.大小(姓,姓大小)//436
    数组空间.大小(名,名大小)//128
    for(1)
        n=辅助.随机数(0,435)
        结果1=姓[n]
        姓结果=姓结果&结果1
    endfor

    for(位数=0;位数<参数;位数++)
        n=辅助.随机数(0,127)
        结果2=名[n]
        名结果=名结果&结果2
    endfor
    返回 (姓结果&名结果)
功能结束

功能 身份证生成()
    //地址码(前六位数) +出生日期码(第七位至十四位)+顺序码(第十五位至十七位) +校验码(第十八位数)
    //顺序码(第十五位至十七位) //对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
    //校验码,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,
    //校验码的计算方法

    //1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
    //2、将这17位数字和系数相乘的结果相加。
    //3、用加出来和除以11,看余数是多少?
    //4、余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。其分别对应的最后一位身份证的号码为1-0-X -9-8-7-6-5-4-3-2。
    //5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现的是 X 。如果余数是10,身份证的最后一位号码就是罗马数字 2 。
    //例如:某男性的身份证号码为【53010219200508011x】, 我们看看这个身份证是不是合法的身份证。
    //首先我们得出前17位的乘积和【(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+(1*2)】是189,然后用189除以11得出的结果是189/11=17----2,也就是说其余数是2。最后通过对应规则就可以知道余数2对应的检验码是X。所以,可以判定这是一个正确的身份证号码。
    var 地址码大小,结果1,地址码,生日码年,生日码月,生日码日,生日码,顺序码,前十七位,校验码
    var 第一位,第二位,第三位,第四位,第五位,第六位,第七位,第八位,第九位,第十位,第十一位,第十二位,第十三位,第十四位,第十五位,第十六位,第十七位
    地址码="110101,120101,130100,140100,150100,210100,220100,230100,310101,320102"
    字符串.分割(地址码,",",地址码)
    n=辅助.随机数(0,9)
    地址码=地址码[n]

    生日码年=辅助.随机数(1900,2000)
    生日码月=辅助.随机数(1,12)
    if(生日码月<10)
        生日码月="0"&生日码月
    endif
    生日码日=辅助.随机数(1,26)
    if(生日码日<10)
        生日码日="0"&生日码日
    endif
    生日码=生日码年&生日码月&生日码日

    顺序码=辅助.随机数(0,999)
    if(顺序码<10)
        顺序码="00"&顺序码
    endif
    if(顺序码>=10 && 顺序码<100)
        顺序码="0"&顺序码
    endif
    前十七位=类型.转字符型(地址码)&类型.转字符型(生日码)&类型.转字符型(顺序码)

    for(i=0;i<17;i++)
        内容=字符串.截取(前十七位,i,i+1)
        if(i+1==1)
            第一位=内容*7
        endif
        if(i+1==2)
            第二位=内容*9
        endif
        if(i+1==3)
            第三位=内容*10
        endif
        if(i+1==4)
            第四位=内容*5
        endif
        if(i+1==5)
            第五位=内容*8
        endif
        if(i+1==6)
            第六位=内容*4
        endif
        if(i+1==7)
            第七位=内容*2
        endif
        if(i+1==8)
            第八位=内容*1
        endif
        if(i+1==9)
            第九位=内容*6
        endif
        if(i+1==10)
            第十位=内容*3
        endif
        if(i+1==11)
            第十一位=内容*7
        endif
        if(i+1==12)
            第十二位=内容*9
        endif
        if(i+1==13)
            第十三位=内容*10
        endif
        if(i+1==14)
            第十四位=内容*5
        endif
        if(i+1==15)
            第十五位=内容*8
        endif
        if(i+1==16)
            第十六位=内容*4
        endif

        if(i+1==17)
            第十七位=内容*2
        endif
    endfor
    辅助.等待(100)

    和=第一位+第二位+第三位+第四位+第五位+第六位+第七位+第八位+第九位+第十位+第十一位+第十二位+第十三位+第十四位+第十五位+第十六位+第十七位
    余数=和%11


    if(余数==0)
        校验码=1
    endif

    if(余数==1)
        校验码=0
    endif

    if(余数==2)
        校验码="X"
    endif

    if(余数==3)
        校验码=9
    endif

    if(余数==4)
        校验码=8
    endif

    if(余数==5)
        校验码=7
    endif

    if(余数==6)
        校验码=6
    endif

    if(余数==7)
        校验码=5
    endif

    if(余数==8)
        校验码=4
    endif

    if(余数==9)
        校验码=3
    endif

    if(余数==10)
        校验码=2
    endif
    身份证号=前十七位&类型.转字符型(校验码)

    返回 (身份证号)
功能结束
///////////////////////////////////////////////////////////////////////////////////////////////////
空间结束
//空间结束语句
视频教程请回复下载
游客,如果您要查看本帖隐藏内容请回复

更多视频请访问:www.yjsdwx.com



回复

使用道具 举报

发表于 2013-12-31 18:35:17 | 显示全部楼层
额,姓名生成用得着这么麻烦嘛、、、直接字符串格式化随机ascii码不就得了。
回复 支持 反对

使用道具 举报

发表于 2013-12-31 19:01:47 | 显示全部楼层
给力,这个必须顶
回复 支持 反对

使用道具 举报

发表于 2013-12-31 20:23:00 | 显示全部楼层
萨打扫打扫打扫打扫打扫打扫打扫打扫打扫
回复 支持 反对

使用道具 举报

发表于 2014-1-1 10:03:22 | 显示全部楼层
工人他
回复

使用道具 举报

发表于 2014-1-1 11:00:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2014-1-2 21:45:00 | 显示全部楼层
131321
回复

使用道具 举报

发表于 2014-1-5 21:25:56 | 显示全部楼层
.............................
回复

使用道具 举报

发表于 2014-1-5 22:03:42 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2014-1-6 19:25:41 | 显示全部楼层
向楼主学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-19 20:35 , Processed in 0.042241 second(s), 22 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表