uniapp获取mac地址,ip地址,验证设备是否合法

摘要:
最近,几天前,前端记录了知识点。开发工具是hbuilderX,业务是根据应用程序运行的设备信息判断设备是否是已知设备库的设备。也就是说,设备是否合法运行项目是为了在项目启动时获取设备mac地址和IP地址,并前往设备库进行查询。如果没有,请退出应用程序。步骤1:Uniapp获取设备mac地址//获取mac地址varnet=plus。安卓importClass(“java.net.NetworkIn

最近顶了几天前端,记录下知识点,

开发工具是hbuilderX,业务是根据app运行的设备信息来判断这个设备是否是已知设备库的设备,既此设备运行这个项目是否合法

思路就是项目启动时获取设备mac地址,IP地址,去设备库查询,如果没有就退出app,

第一步,uniapp获取设备mac地址

//获取mac地址
                var net = plus.android.importClass("java.net.NetworkInterface")
                var wl0 = net.getByName('wlan0')  
                var macByte = wl0.getHardwareAddress()  
                var str = ''  
                //下面这段代码来自网络  
                for (var i = 0; i < macByte.length; i++) {  
                    var tmp = "";  
                    var num = macByte[i];  
                    if (num < 0) {        
                      tmp =(255+num+1).toString(16);  
                    } else {  
                      tmp = num.toString(16);  
                    }  
                    if (tmp.length == 1) {  
                      tmp = "0" + tmp;  
                    }  
                    str += tmp;  
                }  
                console.log(str)

str既是我们的设备mac地址,需要注意的plus对象是在app启动的时候才监听,所以h5运行时是拿不到pius对象的,需要运行在手机上才可以,

第二步,拿到设备ip,

做这一步的时候我烦的要命,因为uniapp拿ip是真的难,最后忽然意识到我好像是个后端来着,请求的东西不都在request里面吗!

所以,前端传个mac地址完事,在接口里用request拿ip就简单多了,

import javax.servlet.http.HttpServletRequest;

public
String validaSbip(String macdz,HttpServletRequest request){ //从请求中拿到客户端的IP地址 String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } System.out.println("IP地址:"+ip);//打印ip地址

然后就回到了我们前端的请求回调里写我们的验证就完事了

最后附上验证不通过时强制关闭APP

let p  = result.data;
                                if(p=="0"){//设备不存在
                                    plus.runtime.quit();  //直接关闭项目
                                }else if(p=="-1"){//地址对,mac地址错误,关闭项目
                                    plus.runtime.quit();  //直接关闭项目
                                }

免责声明:文章转载自《uniapp获取mac地址,ip地址,验证设备是否合法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇office2010无法卸载问题Xp 激活下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mac卸载python

对于 Mac 自带的 Python,其框架目录为:   System/Library/Frameworks/Python.framework 而我们安装的 Python,其(默认)框架目录为:   /Library/Frameworks/Python.framework 接下来,我们就分别(在 Mac 终端进行)删除上面所提到的三部分。   第 1 步,删...

MAC终端中tree命令

Mac没有自带的tree命令,需要额外安装才可以,操作方法有两种: 一、用find命令模拟tree效果 1、mac下默认是没有 tree命令的,不过我们可以使用find命令模拟出tree命令的效果,如显示当前目录的 tree 的命令: find . -print | sed -e 's;[^/]*/;|;g;s;|; |;g' 2、当然你也可以写一个别名来...

Mac 电脑如何安装mac os 和win7双系统(win7多分区)

                    转载:Mac 电脑如何安装mac os 和win7双系统(win7多分区)   本文主要参考了2篇博文,并通过自己的亲身实践总结的。参考的2篇博文地址:   http://wenku.baidu.com/link?url=ukCgLispRe7gq9VHVAa39O91hqtKPfVcWxjMLree0R5XiJsL...

[Mac OS] Homebrew简介及安装wine

Homebrew官网http://brew.sh/index_zh-cn.html Homebrew是神马 linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有yum,Ubuntu有apt-get 神马,你用mac os,不好意Mac os木有类似的东东,泪奔中几经折腾总算找到了第三方支持:Homebr...

切换Mac默认PHP版本为MAMP

方法1 (失效了) 打开mamp pro 在左侧languages中点击php , 然后打勾 ,make this version available on the command line. 方法2 Mac自带了PHP开发环境,但是很多开发者装了MAMP集成环境,打开终端输入:which php,会显示/usr/bin/php,是系统自带的PHP版本,要...

MAC M1安装kettle spoon

*kettle原生不支持m1运行,要配置强制在intel模式下运行shell 然后选择shell tab启动运行命令 env /usr/bin/arch -x86_64 ``/bin/zsh --login *安装jdk 版本必须为1.8.0_251,试过很多个jdk版本都报错。jdk下载地址 https://www.oracle.com/java/...