lan-manager
用于设置操作系统的局域网设置的Node模块(Node >= v7.6), 支持 Windows、macOS, 后续会支持 Linux
安装
npm i --save lan-manager
使用 (Promise/Async)
const lan = require('lan-manager');
lan.listNetworkServices()
.then(console.log.bind(console, '获取成功: '))
.catch(console.log.bind(console, '获取失败: '));
lan.getSettings()
.then(console.log.bind(console, '获取成功: '))
.catch(console.log.bind(console, '获取失败: '));
lan.setSettings({
autoDetect: true
})
.then(console.log.bind(console, '设置成功'))
.catch(console.log.bind(console, '设置失败: '));
lan.setSettings({
autoConfig: true,
autoConfigUrl: 'http://127.0.0.1:50011'
})
.then(console.log.bind(console, '设置成功'))
.catch(console.log.bind(console, '设置失败: '));
lan.setSettings({
proxyEnable: true,
proxyServer: '127.0.0.1:8888',
bypassLocal: true
})
.then(console.log.bind(console, '设置成功'))
.catch(console.log.bind(console, '设置失败: '));
lan.setSettings({
proxyEnable: true,
proxyServer: 'http=127.0.0.1:8888;https=127.0.0.1:8889;ftp=127.0.0.1:8890;socks=127.0.0.1:8891',
bypassLocal: false,
bypass: 'www.test;www.abc'
})
.then(console.log.bind(console, '设置成功'))
.catch(console.log.bind(console, '设置失败: '));
lan.reset()
.then(console.log.bind(console, '设置成功'))
.catch(console.log.bind(console, '设置失败: '));
使用 (Callback)
const lan = require('lan-manager');
lan.listNetworkServices(function(err, services) {
console.log(err ? '获取失败' : '获取成功');
console.log(services);
});
lan.getSettings(function(err, settings) {
console.log(settings);
});
lan.setSettings({ autoDetect: true }, function(err) {
console.log(err ? 'Fail' : 'Success');
});
lan.setSettings({
autoConfig: true,
autoConfigUrl: 'http://127.0.0.1:30001/'
}, function(err) {
console.log(err ? 'Fail' : 'Success');
});
lan.setSettings({
proxyEnable: true,
proxyServer: '127.0.0.1:8888',
bypassLocal: true
}, function(err) {
console.log(err ? 'Fail' : 'Success');
});
lan.setSettings({
proxyEnable: true,
proxyServer: 'http=127.0.0.1:8888;https=127.0.0.1:8889;ftp=127.0.0.1:8890;socks=127.0.0.1:8891',
bypassLocal: false,
bypass: 'www.test;www.abc'
}, function(err) {
console.log(err ? 'Fail' : 'Success');
});
lan.reset(function(err) {
console.log(err ? 'Fail' : 'Success');
});
API
注: networkservice 参数只适用于 macOS, 默认值为 "All", 即全部设置
lan.listNetworkServices([cb]):
获取设备的所有可用 NetworkServices
cb(err)
为可选回调函数,如果重置失败,则err不为空; (macOS only)
若不传入回调函数, 则返回 Promise 对象;
[ 'iPhone USB', 'Ethernet', 'Wi-Fi', 'Bluetooth PAN', 'Thunderbolt Bridge' ]
lan.getSettings([cb, networkservice]):
获取当前局域网设置信息
其中 cb(err, settings)
为可选回调函数,如果出错err不为空,否则settings为当前系统局域网设置信息;
若不传入回调函数, 则返回 Promise 对象;
{
autoDetect: true,
autoConfig: true,
autoConfigUrl: 'http://127.0.0.1:50011',
proxyEnable: true,
proxyServer: '127.0.0.1:8888',
bypassLocal: true,
bypass: 'www.test;www.abc'
}
lan.setSettings(settings, [cb, networkservice]):
设置局域网信息
settings如上,如果为null表示清空并关闭所有局域网设置项,cb(err)
为可选回调函数,如果设置失败,则err不为空。
若不传入回调函数, 则返回 Promise 对象;
lan.reset(cb[, networkservice]):
将局域网设置重置到修改前
cb(err)
为可选回调函数,如果重置失败,则err不为空。
若不传入回调函数, 则返回 Promise 对象;
License
MIT