首页前端开发JavaScript浅谈利用Node.js如何获取WI-FI密码

浅谈利用Node.js如何获取WI-FI密码

时间2024-01-30 07:25:03发布访客分类JavaScript浏览301
导读:收集整理的这篇文章主要介绍了浅谈利用Node.js如何获取WI-FI密码,觉得挺不错的,现在分享给大家,也给大家做个参考。利用Node.js如何获取WI-FI密码?下面本篇文章给大家介绍一下使用Node.js获取WI-FI密码的方法,希望对...
收集整理的这篇文章主要介绍了浅谈利用Node.js如何获取WI-FI密码,觉得挺不错的,现在分享给大家,也给大家做个参考。利用Node.js如何获取WI-FI密码?下面本篇文章给大家介绍一下使用Node.js获取WI-FI密码的方法,希望对大家有所帮助!

【推荐学习:《nodejs 教程》】

演示效果

全局安装wifi-password-cli依赖

npm install wifi-password-cli -g# ornpx wifi-password-cli

使用

$ wifi-password [network-name]$ wifi-password12345678$ wifi-password 办公室wifia1234b2345

觉得Node.js很神奇是么?其实并不是,我们看看它是如何实现的

实现原理

OSX系统

通过下面的命令查询wifi密码

securITy find-generic-password -D "airPort network password" -wa "wifi-name"

linux系统

所有的wi-fi连接信息都在/etc/NetworkManager/System-connections/文件夹中

我们通过下面的命令来查询wifi密码

sudo cat /etc/NetworkManager/system-connections/wifi-name>
    

Windows系统

通过下面的命令查询wifi密码

netsh wlan show PRofile name=wifi-name>
     key=clear

实现源码

它的实现源码也很简单,感兴趣可以学习

https://github.COM/kevva/wifi-password

入口文件是index.js,首先通过判断用户的操作系统去选择不同的获取方式

'use strict';
    const wifiName = require('wifi-name');
    module.exports = ssid =>
 {
    	let fn = require('./lib/linux');
	if (process.platform === 'darwin') {
    		fn = require('./lib/osx');
	}
	if (process.platform === 'win32') {
    		fn = require('./lib/win');
	}
	if (ssid) {
    		return fn(ssid);
	}
    	return wifiName().then(fn);
}
    ;
    

Linux

'use strict';
    const execa = require('execa');
    module.exports = ssid =>
 {
    	const cmd = 'sudo';
	const args = ['cat', `/etc/NetworkManager/system-connections/${
ssid}
    `];
    	return execa.stdout(cmd, args).then(stdout =>
 {
    		let ret;
    		ret = /^\s*(?:psk|password)=(.+)\s*$/gm.exec(stdout);
    		ret = ret &
    &
     ret.length ? ret[1] : null;
		if (!ret) {
    			throw new Error('Could not get password');
		}
    		return ret;
	}
    );
}
    ;
    

OSX

'use strict';
    const execa = require('execa');
    module.exports = ssid =>
 {
    	const cmd = 'security';
    	const args = ['find-generic-password', '-D', 'AirPort network password', '-wa', ssid];
    	return execa(cmd, args)		.then(res =>
 {
			if (res.stderr) {
    				throw new Error(res.stderr);
			}
			if (!res.stdout) {
    				throw new Error('Could not get password');
			}
    			return res.stdout;
		}
    )		.catch(err =>
 {
			if (/The sPEcified item could not be found in the keychain/.test(err.message)) {
    				err.message = 'Your network doesn\'t have a password';
			}
    			throw err;
		}
    );
}
    ;
    

Windows

'use strict';
    const execa = require('execa');
    module.exports = ssid =>
 {
    	const cmd = 'netsh';
	const args = ['wlan', 'show', 'profile', `name=${
ssid}
    `, 'key=clear'];
    	return execa.stdout(cmd, args).then(stdout =>
 {
    		let ret;
    		ret = /^\s*Key Content\s*: (.+)\s*$/gm.exec(stdout);
    		ret = ret &
    &
     ret.length ? ret[1] : null;
		if (!ret) {
    			throw new Error('Could not get password');
		}
    		return ret;
	}
    );
}
    ;
    

更多编程相关知识,请访问:编程视频!!

以上就是浅谈利用Node.js如何获取WI-FI密码的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: JavaScript能做什么的下一篇:javascript如何实现下载猜你在找的JavaScript相关文章 html font标签如何设置字体大小?html font标签属性用法介绍2022-05-16vue3+TypeScript+vue-router的使用方法2022-04-16vue3获取当前路由地址2022-04-16如何利用React实现图片识别App2022-04-16JavaScript展开运算符和剩余运算符的区别详解2022-04-16微信小程序中使用vant框架的具体步骤2022-04-16Vue elementUI表单嵌套表格并对每行进行校验详解2022-04-16如何利用Typescript封装本地存储2022-04-16微信小程序中wxs文件的一些妙用分享2022-04-16JavaScript的Set数据结构详解2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: 浅谈利用Node.js如何获取WI-FI密码
本文地址: https://pptw.com/jishu/592217.html
javascript如何实现下载 C# 利用委托进行异步处理实例代码

游客 回复需填写必要信息