QM[zm]04.16 网络共享数据之数据库权限(VIP)

小知识:简单的限制同名设备登陆功能 实现思路

每次某个设备登陆 就把登陆设备的设备Id上传接口 接口在数据库里面查找对应的设备 找到字段是否已运行为1  当该设备脚本停止 就给接口传送一个信息 让该字段为-1 但是这会涉及到接口的功能设计和php代码的管理  如果有相同设备id的设备想要运行脚本 先到接口的数据库搜索是否已运行字段的值  如果为1 表明已经有该设备运行 自然会阻止重名设备运转 如果没有设备运行 则允许运行后  把字段 已运行字段 的值改为1   给自己接口上增加这个功能(这个思路其实不用看了 因为下一节有老师的思路和完整的代码)

注意:如果网站挂在外网 需要调整几点 因为要考虑安全因素

1.数据库的名字test 这个数据库名并不安全  请自己重想一个数据库名 并在sql.php里面修改成对应的名字

2 对于数据库的账号 不要用root账号 风险过大  可以在后台设置一个普通用户 给与一定的基础权限就够了 具体设置方法 可以百度 没什么太多需要说的  一个具体的链接可以参考https://jingyan.baidu.com/article/fa4125acb2fd8d28ad709245.html

3 注意 选择 任意主机和本地的时候 注意区别

4 注意真正的密码是这个 而不是我们输入的密码

QM[zm]04.17 网络共享数据之脚本授权加密验证(VIP)

以前的老问题:老师这节课提到了 中控系统的一个最要紧的东西   如果脚本是非正常的停止 没有给接口发送终止的命令 接口数据库自然没有记录该脚本已经停止  这就需要接口数据库定时执行一个数据库遍历任务 查看所有的记录里面所记录的最新时间和当前时间对比 超过2分钟的就会认定已经下线  。如果是普通的虚拟主机 因为没法进入服务器端 更没法用at命令来设置定时任务 所以无法实现这个定时操作 还有其他的投机取巧的办法 以前博客也有阐述 但是依然无法实现

老师提出了一个解决办法 虽然不是十分完美 但是的确是解决了 下面就是思路

老师提出用随机字符串来验证的思路也不错

目的:我们要实现一个设备号当前只有一个可以登陆的

思路结构(主要是数据库表的结构和运行思路):(不过会顶号)

举个例子:设备id  YTYUTU34234GSj   这个设备 上的脚本运行 产生了一个随机数之为987324 然后把这个随机数值送到数据接口上传到接口数据库记录  记录的样式

id 1 | 设备id   YTYUTU34234GSj |  设备验证码 :987324  |  最新更新时间 :2019-01-05 17:23 (应该是时间戳)

如果此时我又开了一个设备 把该设备的设备id也设置为YTYUTU34234GSj   运行第二个设备的脚本 也会产生一个随机值 但是 基本不可能跟第一个设备的随机数一样 打个比方为945832 把这个数据提交到接口 接口数据库接收了  该设备id对应的记录改为了

id 1 | 设备id   YTYUTU34234GSj |  设备验证码 :945832  |  最新更新时间 :2019-01-05 17:30 (应该是时间戳)

当第一个设备周期性的验证接口数据库当前设备id对应的验证码的时候 接口数据库的验证码现在为945832  而不是第一个设备的987324  那么第一个设备会自己停止运行脚本并提示发生设备id冲突  如果存在第三个设备 该设备id也为YTYUTU34234GSj  那么会导致第二个设备也会停止

数据库结构:

源码

Import "zm.luae" //导入插件,只需执行一次
zm.Init  //初始化插件,只需执行一次
Randomize  Dim 显示字符串=""
Dim 当前验证字符串=随机数字字母字符串(array(0,15))
//Dim 设备id=GetDeviceID()
Dim 设备id="1234567890" //因为就算用模拟器复制一个镜像 设备id还是有区别 所以我就指定下设备id让他们相同
TracePrint "生成的 当前验证字符串["&当前验证字符串&"]"
Dim 网络数据库接口地址="http://192.168.0.102/sql.php"
zm.NetDataInit 网络数据库接口地址, "测试数据库"
zm.NetDataSet 设备id, 当前验证字符串 //把当前的设备id和当前设备对应的随机验证字符串上传给接口数据库记录到其中//设置几个线程需要用到的变量 因为线程和主代码之间很多东西无法通用
Thread.SetShareVar "多线程设备id", 设备id
Thread.SetShareVar "多线程当前验证字符串", 当前验证字符串
Thread.SetShareVar "多线程是否运行","1"
Thread.Start 多线程_设备网络验证 //运行多线程  线程负责链接接口数据库检测当前设备id对应的验证字符串和脚本本身的验证字符串是否一致//主循环代码
Do    //若干操作    If Thread.GetShareVar("多线程是否运行") <> "1" Then For 5ShowMessage "主代码<发生设备冲突 当前脚本停止>"Delay 2000NextEndScript //主代码停止Else ShowMessage "主代码[本次检测一切正常 允许当前设备运行脚本]"Delay 1000End If    Delay 20000
LoopSub 多线程_设备网络验证()Dim 网络数据库接口地址="http://192.168.0.102/sql.php"zm.NetDataInit 网络数据库接口地址, "测试数据库"Dim 网络上获取的当前验证字符串=zm.NetDataGet(Thread.GetShareVar("多线程设备id"))TracePrint "网络上获取的 多线程当前验证字符串为["&网络上获取的当前验证字符串&"]"Do//链接接口数据库 把当前设备id提交获取数据库里面记录的验证字符串 然后和本地的验证字符串比较网络上获取的当前验证字符串=zm.NetDataGet(Thread.GetShareVar("多线程设备id"))If 网络上获取的当前验证字符串 <> Thread.GetShareVar("多线程当前验证字符串") Then         Thread.SetShareVar "多线程是否运行", "-1" //将该线程值变为-1 通知主代码停止TracePrint "多线程内发现网络验证字符串和本地的验证字符串不同 多线程停止"EndScript //线程停止Else ShowMessage "多线程[一切正常]"End If        Delay 10000 //10秒检测一次
    LoopEnd Sub
//下面是随机生成指定长度字符串的函数 和主代码无关
Function 随机数字字母字符串(配置数组或者长度数值)Dim arr,str,resultIf IsArray(配置数组或者长度数值) Then If 配置数组或者长度数值(0) = 0 Then str="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-1-2-3-4-5-6-7-8-9-0"arr = Split(str, "-")ElseIf 配置数组或者长度数值(0) = 1 Thenstr="1-2-3-4-5-6-7-8-9-0"arr = Split(str, "-")ElseIf 配置数组或者长度数值(0) = 2 Thenstr="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"arr = Split(str, "-")End IfElse str="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-1-2-3-4-5-6-7-8-9-0"arr = Split(str, "-")End If//35个字符For cint(配置数组或者长度数值(1))result=result&arr(cint(随机数(0,ubound(arr))))Delay 10NextTracePrint "得到的随机字符串为: " & result随机数字字母字符串=result
End Function
Function 随机数(最小值,最大值)Dim 结果结果 = Int((最大值 - 最小值 + 1) * Rnd() + 最小值)随机数=结果
End Function

QM[zm]04.18 网络共享数据之一些更新内容(VIP)

1.sql导入导出

txt导入mysql

鉴于手机脚本用的比较多的是txt来存储一些重要的账号密码信息 所以这里演示下如何把txt里面的账号密码信息传递到数据库里面  老师的办法可行 但是效率有点低

常见的txt账号文件结构如下

打开mysql后台 先新建表 加2个字段  txt里面有几列我们就加入几个字段

开始导入txt

设置导入参数

分隔符设置 因为txt里面分隔符为- 所以我们导入要设置

结果

可以给当前表再添加一些需要的字段 比如id自增 或者是其他字段 这样就完成了txt导入mysql

mysql导出为txt

设置导出参数

得到结果


2.获取最大行数

结果 = zm.NetDataCount([数据表名])  没什么说的  无非就是 select count(*) from XXX

3起始行限定

不用多说

4接口数据库内容写入表(效率存在问题 不建议用这个办法 可以直接txt导入mysql)

转载于:https://www.cnblogs.com/zjl8455482/p/10226015.html

紫猫插件-网络共享数据(16-18)相关推荐

  1. 简易中控紫猫插件版(3)压缩包使用说明

    1.环境配置 脚本运行环境:没什么说的 正常的最新版手机按键 当然还需要 最新的紫猫插件 中控运行环境:首先要保证把压缩包的所有php文件都扔到网站的根目录下 必须保证网站的php版本是5.4+ 不然 ...

  2. 保存的图数据丢失_锡柴自主刷写和备份共享数据文件使用介绍

    刷写功能 锡柴自主 ECU刷写可以恢复损坏的数据或是新ECU刷上相应车型的数据 注意事项 确认车辆电瓶电量充足,平板电脑电量充足.发动机不启动.车辆处于刹车状态.建议使用USB线进行刷写可以提高刷写速 ...

  3. 虚拟机连接网络_Parallels Desktop 16教程PD16虚拟机共享网络和桥接网络设置方法

    许多用户在Mac上安装Parallels Desktop 16之后,想要设置Mac与虚拟机共享网络,那么共享网络和桥接网络设置有什么不同?该怎样设置?本篇就为大家分享PD16虚拟机共享网络和桥接网络设 ...

  4. 访问有用户名和密码的网络共享,实现数据导入

    一个应用需要使用局域网某部主机提供的数据.由于安全考虑.这个主机只开放了一个共享地址,并给了有权访问的用户名和密码.数据为ACCESS文件. 而我们的应用需要每天定时去访问这个文件.来同步数据. 环境 ...

  5. 【Python网络编程和并发-多线程共享数据混乱引出同步锁】

    38_第五章-多线程共享数据混乱引出同步锁 一.上节回顾 总结 在一个进程内的所有线程共享全局变量,能够在部使用其他方式的前提下完成多线程之间的数据共享(这点要比多进程更好) 缺点就是,线程对全局变量 ...

  6. 计算机网络共享是什么意思,网络共享与便携式热点是什么意思

    网络共享与便携式热点是什么意思 2018-09-17 推荐内容 网络共享与便携式热点是什么意思 手机 来自 匿名用户 的提问 最佳答案 由提问者推荐 匿名用户 所谓便携式wlan热点,也就是将因特网分 ...

  7. Android网络之数据解析----SAX方式解析XML数据

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  8. Disruptor 线程间共享数据无需竞争

    队列的作用是缓冲 缓冲到 队列的空间里.. 线程间共享数据无需竞争 原文 地址  作者  Trisha   译者:李同杰 LMAX Disruptor 是一个开源的并发框架,并获得2011 Duke' ...

  9. 线程的创建 验证线程之间共享数据 守护线程 线程进程效率对比 锁 死锁 递归锁...

    线程(from threading import Thread):CPU调度的最小单位 线程的两种创建方式:方式一: 1 from threading import Thread 2 def f1(i ...

  10. Java高并发编程:多个线程之间共享数据的方式探讨

    内容摘要 多个线程之间共享数据,按照每个线程执行代码是否相同,我们可以采取不同的处理方式,这里通过简单的卖票示例说明了当每个线程执行相同代码的情况,对于多个线程执行不同代码的情况,处理方式比较灵活,这 ...

最新文章

  1. 生成对抗网络gan原理_中国首个“芯片大学”即将落地;生成对抗网络(GAN)的数学原理全解...
  2. Jeff Dean:一年开源12款新工具,谷歌负责任AI原则落地生根
  3. okhttp请求文件异常解决方法
  4. cocos studio和cocos creator关系
  5. Seq2Seq+前缀树:检索任务新范式(以KgCLUE为例)
  6. 简单实现几种常见的前端效果,附代码!
  7. java heap space flex_Flash builder 4内存优化之java heap space解决办法
  8. python笔记之利用BeautifulSoup爬取糗事百科首页段子
  9. 首席架构师徐海峰眼中的架构和出色的架构师
  10. 我身边的计算机网,电脑在我身边作文700字
  11. Linux服务-bind
  12. PowerDesigner生成的建表脚本中如何把对象的双引号去掉
  13. 移动APP测试,adb工具
  14. C#制作简易屏幕保护
  15. debian10上安装samba服务器
  16. 第二届全球区块链峰会随记
  17. 拼多多参谋:拼多多隐私号是什么意思?拼多多隐私号怎么查看真实号码?
  18. Bad config encountered during initialization: No such notebook dir:
  19. 局域网https安全证书解决方案mkcert
  20. DSO详解-Direct Sparse Odometry论文解读

热门文章

  1. 练法、打法、演法——回味老罗踢馆这场戏
  2. PS磨皮—高低频磨皮
  3. phpstudy和php,phpstudy与xampp区别
  4. 测试开发自我介绍模板
  5. 《第二次曲线创新》李善友教授
  6. 单元测试的目的及使用
  7. linux shell有哪些变量,Linux Bash Shell有关变量
  8. 热敏打印机USB测试工具,命令行版本xpt
  9. 超详细!一份给零基础新手的插画设计自学指南
  10. Java运行准备JDR JRE JVM知识和环境变量的作用