Perbincangan ringkas tentang cara mendapatkan kata laluan WI-FI menggunakan Node.js

青灯夜游
Lepaskan: 2021-09-08 10:49:47
ke hadapan
2821 orang telah melayarinya

Bagaimana untuk mendapatkan kata laluan WI-FI menggunakan Node.js? Artikel berikut akan memperkenalkan kepada anda cara menggunakan Node.js untuk mendapatkan kata laluan WI-FI saya harap ia akan membantu anda!

Perbincangan ringkas tentang cara mendapatkan kata laluan WI-FI menggunakan Node.js

[Pembelajaran yang disyorkan: "tutorial nodejs"]

Kesan demonstrasi

Pasang secara global wifi-password-cli kebergantungan

npm install wifi-password-cli -g
# or
npx wifi-password-cli
Salin selepas log masuk

gunakan

$ wifi-password [network-name]

$ wifi-password
12345678

$ wifi-password 办公室wifi
a1234b2345
Salin selepas log masuk

Adakah anda rasa Node.js hebat? Sebenarnya tidak, mari kita lihat bagaimana ia dilaksanakan

Prinsip pelaksanaan

Sistem OSX

Dengan mengikut arahan Query wifi kata laluan

security find-generic-password -D "AirPort network password" -wa "wifi-name"
Salin selepas log masuk

Sistem Linux

Semua maklumat sambungan wi-fi berada dalam folder /etc/NetworkManager/system-connections/

Kami lulus yang berikut Gunakan yang berikut perintah untuk bertanya kata laluan wifi

sudo cat /etc/NetworkManager/system-connections/<wifi-name>
Salin selepas log masuk

Sistem Windows

Tanya kata laluan wifi melalui arahan berikut

netsh wlan show profile name=<wifi-name> key=clear
Salin selepas log masuk

Laksanakan kod sumber

Kod sumber pelaksanaannya juga sangat mudah, anda boleh belajar jika anda berminat

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

Fail kemasukan ialahindex.js, mula-mula pilih kaedah pemerolehan yang berbeza dengan menilai sistem pengendalian pengguna

&#39;use strict&#39;;
const wifiName = require(&#39;wifi-name&#39;);

module.exports = ssid => {
	let fn = require(&#39;./lib/linux&#39;);

	if (process.platform === &#39;darwin&#39;) {
		fn = require(&#39;./lib/osx&#39;);
	}

	if (process.platform === &#39;win32&#39;) {
		fn = require(&#39;./lib/win&#39;);
	}

	if (ssid) {
		return fn(ssid);
	}

	return wifiName().then(fn);
};
Salin selepas log masuk

Linux

&#39;use strict&#39;;
const execa = require(&#39;execa&#39;);

module.exports = ssid => {
	const cmd = &#39;sudo&#39;;
	const args = [&#39;cat&#39;, `/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(&#39;Could not get password&#39;);
		}

		return ret;
	});
};
Salin selepas log masuk

OSX

&#39;use strict&#39;;
const execa = require(&#39;execa&#39;);

module.exports = ssid => {
	const cmd = &#39;security&#39;;
	const args = [&#39;find-generic-password&#39;, &#39;-D&#39;, &#39;AirPort network password&#39;, &#39;-wa&#39;, ssid];

	return execa(cmd, args)
		.then(res => {
			if (res.stderr) {
				throw new Error(res.stderr);
			}

			if (!res.stdout) {
				throw new Error(&#39;Could not get password&#39;);
			}

			return res.stdout;
		})
		.catch(err => {
			if (/The specified item could not be found in the keychain/.test(err.message)) {
				err.message = &#39;Your network doesn\&#39;t have a password&#39;;
			}

			throw err;
		});
};
Salin selepas log masuk

Windows

&#39;use strict&#39;;
const execa = require(&#39;execa&#39;);

module.exports = ssid => {
	const cmd = &#39;netsh&#39;;
	const args = [&#39;wlan&#39;, &#39;show&#39;, &#39;profile&#39;, `name=${ssid}`, &#39;key=clear&#39;];

	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(&#39;Could not get password&#39;);
		}

		return ret;
	});
};
Salin selepas log masuk

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !

Atas ialah kandungan terperinci Perbincangan ringkas tentang cara mendapatkan kata laluan WI-FI menggunakan Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!