简介
本实例用于演示,通过万捷网络验证给Lua脚本增加登录授权功能,让Lua编写的脚本可以进行销售,控制脚本的版权,为软件的作者提供收益。
实现的原理:
根据网络验证的WebApi接口的要求,构造URL网址,然后访问网址,根据返回的内容控制程序流程。
用到的技术/接口:
1、(必须)需要用到URL访问的功能,通常表达为:网页访问、GET请求、HTTP请求、cURL,用于访问构造的网址。
2、(非必须)字符串分割成数组的功能,用于将访问网址返回的内容分割成数组,根据实际需求来利用分割出的成员结果。
相关资料:
在线帮助文档(看 webapi接口说明):https://www.wjsrs.com/h/
示例源码:
local http = require("socket.http")
local ltn12 = require("ltn12")
-------------------------基本配置 开始---------------------------
server = "http://xxxx/api.php" --服务器地址
rjbh = "10001" -- 软件编号
bb = "1.0" -- 软件版本
jqm = "jqm" -- 机器码、设备信息,最大32位数字字母组合
-------------------------基本配置 结束---------------------------
function http.get(u)
local t = {}
local r, c, h = http.request{
url = u,
sink = ltn12.sink.table(t)}
return r, c, h, table.concat(t)
end
-- 发送http.get请求,返回响应结果
function wb_getUrl(url)
r,c,h,body = http.get(url)
if c~= 200 then
print("ErrorCode: " .. c)
return
else
return body
end
end
-- 分割字符串
local function split(str, delimiter)
if str==nil or str=='' or delimiter==nil then
return nil
end
local result = {}
for match in (str..delimiter):gmatch("(.-)"..delimiter) do
table.insert(result, match)
end
return result
end
kami = "CF21686BE5BA" -- 设置登录的卡号
--构造URL
url = server .. "?name=zdy_login&c1="..rjbh.."&c2="..kami.."&c4="..bb.."&c5="..jqm.."&c6=yxh".."&c7=1,2,3,4,5,6,7,8,9&code=1"
data = wb_getUrl(url) -- 访问URL
print(data) -- 输出结果:3440<|>0<|>1<|>1562459030<|>27.189.144.181<|><|>new<|><|>1<|>1
s = split(data,"<|>") -- 返回结果的分隔符为<|> 如果没有,就是返回了错误信息
print("剩余时间秒:"..s[1])
print("剩余点数:"..s[2])
print("允许几开:"..s[3])
print("游戏号:"..s[4])
print("上次登录IP:"..s[5])
print("邮箱:"..s[6])
print("上次登录机器码:"..s[7])
print("上次登录时间:"..s[8])
print("用户权限:"..s[9])