/配置参数,需修改为个人配置信息,网站申请用户后修改
Dim 软件版本, 试用次数, 试用天数, 网站用户账号, 注册类别, 校验密钥, 检验间隔时间, 续费购买网址, 升级地址
Dim 设备ID, 用户别名
Dim 校验值, post数据, 请求地址, regweb
Dim MyArray, 网络时间, 校验结果, 随机参数,检验时间1, 检验时间2
网站用户账号 = "U2T1460651957974" //网站用户appid,需填写在网站申请的账号对应appid
注册类别 = 10//注册商品即软件编号,用于区分同一用户不同的脚本类别
软件版本 = 2 //客户端软件版本,更新时该设置需修改大于等于服务器设置的版本号,否则返回err,根据errmsg可提示更新
试用次数 = 5//试用次数为空则不试用,请根据需要设置5次以下,超过5次无效,与试天次数建议设置一项
试用天数 = 1//试用天数为空则不试用,可设置5天以下,超过5天无效,与试用次数建议设置一项
校验密钥 = "f964633356970667ff80ff1c167c0cbf" //网站注册用户后可自行生成密钥,校验用,注意保密以免其他用户误用
检验间隔时间 = 20//检验间隔时间,秒,需设置大于20秒,频繁校验则返回错误
续费购买网址 = "http://" //提示用户购买注册时间的网址
升级地址 = "http://" //转到升级网址
//以上为配置参数,修改为你申请的信息,网站p注册用户并开通网络验证,然后新增商品即软件编号
//分隔线---------------------------------------------------------------------------------------------
Sub 开始初始检验
//以下开始首次自动收集设备信息并初始验证
随机参数 = int(Rnd()*100000)
//以下为唯一参数设置
设备ID = getCpuID() & Plugin.sys.GetHDDSN //必需参数,唯一判断,也可自行设定
//用户别名 = ""//留空,网站另行设置,唯一对应设备ID,方便记忆后续充值续期
用户校验 = "" //可空,也可设置隐藏参数
TracePrint "设备ID:"&设备ID
regweb = "http://.cn" //验证服务端网址,网站用户账号免费申请
网络时间 = Lib.网络.获取网络时间()
检验时间1 = 网络时间
Traceprint 网络时间
If 检验间隔时间 < 20 Then
检验间隔时间 = 20
End If
TracePrint 校验密钥&"1001"&网站用户账号&设备ID&用户别名&用户校验&注册类别&软件版本&网络时间&试用天数&试用次数&随机参数
校验值 = Plugin.Encrypt.Md5String(校验密钥&"1001"&网站用户账号&设备ID&用户别名&用户校验&注册类别&软件版本&网络时间&试用天数&试用次数&随机参数)
TracePrint 校验值
TracePrint regweb&"/api/svrchk?tp=1001&appid=" & 网站用户账号 & "&macid=" & 设备ID & "&username=" & 用户别名 & "&userpwd=" & 用户校验 & "&softid=" & 注册类别 & "&ver=" & 软件版本 & "&ndate=" & 网络时间 & "&tryd=" & 试用天数 & "&tryn=" & 试用次数 & "&rnds=" & 随机参数 & "&strparm=" & 校验值
请求地址 = regweb&"/api/svrchk"
post数据 = "tp=1001&appid=" & 网站用户账号 & "&macid=" & 设备ID & "&username=" & 用户别名 & "&userpwd=" & 用户校验 & "&softid=" & 注册类别 & "&ver=" & 软件版本 & "&ndate=" & 网络时间 & "&tryd=" & 试用天数 & "&tryn=" & 试用次数 & "&rnds=" & 随机参数 & "&strparm=" & 校验值
校验结果 = 获得网页源文件_增强版(请求地址&"?"& post数据,"gbk")
If 校验结果="err:101,msg:low version" Then
TracePrint "版本不符,请升级!" & 校验结果
Plugin.Msg.Tips "版本不符,请升级!" & 校验结果
Call Plugin.Web.Go(升级地址)//打开升级地址 建议用其它更好的网页插件
Delay 2000
End If
If InStr(1, 校验结果, "ok") > 0 Then
MyArray = Split(校验结果, ",")
If UBOUND(MyArray) > 0 Then
校验结果 = Myarray(2)
End If
If lcase(校验结果) <> lcase(Plugin.Encrypt.Md5String(随机参数 & Myarray(1) & 校验密钥)) Then
TracePrint "非法操作,停止运行!"
EndScript
Else
TracePrint "登录校验成功!"
End If
Else
TracePrint "登录校验失败!" & 校验结果
Plugin.Msg.Tips "登录校验失败!" & 校验结果
EndScript
End If
//初始验证结束
End Sub
Sub 开始间隔检验
//开始校验判断是否克隆或多点重复登录,必须定期在程序里检测,防止克隆
检验时间2 = Lib.网络.获取网络时间()
TracePrint DateDiff("s", 检验时间1, 检验时间2)
If DateDiff("s", 检验时间1, 检验时间2) >= 检验间隔时间 Then
检验时间1=检验时间2
校验值 = Plugin.Encrypt.Md5String(校验密钥&"1002"&网站用户账号&设备ID&用户别名&用户校验&注册类别&软件版本&网络时间&试用天数&试用次数&随机参数)
post数据 = "tp=1002&appid=" & 网站用户账号 & "&macid=" & 设备ID & "&username=" & 用户别名 & "&userpwd=" & 用户校验 & "&softid=" & 注册类别 & "&ver=" & 软件版本 & "&ndate=" & 网络时间 & "&tryd=" & 试用天数 & "&tryn=" & 试用次数 & "&rnds=" & 随机参数 & "&strparm=" & 校验值
校验结果 = 获得网页源文件_增强版(请求地址&"?"& post数据,"gbk")
TracePrint 校验结果
If 校验结果="err:101,msg:low version" Then
TracePrint "版本不符,请升级!" & 校验结果
Plugin.Msg.Tips "版本不符,请升级!" & 校验结果
Call Plugin.Web.Go(升级地址) //打开升级地址 建议用其它更好的网页插件
Delay 2000
End If
If InStr(1, 校验结果, "ok") > 0 Then
MyArray = Split(校验结果, ",")
If UBOUND(MyArray) > 0 Then
校验结果 = Myarray(2)
End If
If lcase(校验结果) <> lcase(Plugin.Encrypt.Md5String(随机参数 & Myarray(1) & 校验密钥)) Then
TracePrint "检测到您在其它设备重复登录,停止运行!"
EndScript
Else
TracePrint "间隔校验成功!"
End If
Else
TracePrint "登录校验失败!" & 校验结果
Plugin.Msg.Tips "登录校验失败!" & 校验结果
EndScript
End If
End If
End Sub
Function GetCpuId()
//获取CPU序列号
strout=""
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
str=""
str=str & vbcrlf & "For Each objItem in colItems"
str=str & vbcrlf & " strOut = strOut & objItem.ProcessorId & vbcrlf"
str=str & vbcrlf & "Exit For"
str=str & vbcrlf & "Next"
Execute(str)
sn=strOut
sn=left(sn,7)
sn = int("&H" & sn)
GetCpuId = sn
End Function
Function 获得网页源文件_增强版(网页地址, 网页编码) //多个参数.设置编码"utf-8"、"gbk".跟乱码说88
Dim xmlHttp, xmlUrl,ObjStream
If InStr(网页地址, "http://") = 0 Then
xmlUrl = "http://" & 网页地址
Else
xmlUrl = 网页地址
End if
Set xmlHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
xmlHttp.Open "GET", xmlUrl, True
xmlHttp.Send
If xmlhttp.waitforresponse() Then
Set ObjStream = CreateObject("Adodb.Stream")
ObjStream.Type = 1
ObjStream.Mode = 3
ObjStream.Open
ObjStream.Write xmlHttp.ResponseBody
ObjStream.Position = 0
ObjStream.Type = 2
ObjStream.Charset = 网页编码
获得网页源文件_增强版 = ObjStream.ReadText
Set ObjStream = Nothing
Else
获得网页源文件_增强版 = "" //如果获取失败返回值是 空
End If
Set xmlHttp = Nothing
End Function
//分隔线----------------以上为自动生成代码,与验证服务器网站配套使用,不熟悉接口请勿修改--------------------
Call 开始初始检验 //你的代码开始之前完成初始检验Sub
//以下开始你的主程序
Do
TracePrint "下面开始运行你的程序"
//你的程序例子开始
For i = 1 to 5
Delay 1000
Plugin.Msg.Tips "正在运行你的程序...."&i
Next
//你的程序例子结束
Call 开始间隔检验//在执行你的代码中途随时插入间隔检验Sub
Loop
- 上一篇:易语言网络验证源码,会员验证系统
- 下一篇:易语言、E4A专用网络验证