63 lines
2.5 KiB
JavaScript
63 lines
2.5 KiB
JavaScript
'use strict';
|
|
|
|
const Arpping = require('./index.js');
|
|
const arpping = new Arpping({
|
|
timeout: 4,
|
|
includeEndpoints: true,
|
|
useCache: true,
|
|
cacheTimeout: 30
|
|
});
|
|
|
|
const tests = {
|
|
findMyInfo: info => console.log(info),
|
|
discover: hosts => console.log(`${hosts.length} host(s) found:\n${JSON.stringify(hosts, null, 4)}`),
|
|
searchByIpAddress: ({ hosts, missing }) => {
|
|
console.log(`Found ${hosts.length} host(s):\n${JSON.stringify(hosts, null, 4)}`);
|
|
console.log(`${missing.length} host(s) missing:\n${missing}`);
|
|
},
|
|
searchByMacAddress: ({ hosts, missing }) => {
|
|
console.log(`Found ${hosts.length} host(s):\n${JSON.stringify(hosts, null, 4)}`);
|
|
console.log(`${missing.length} host(s) missing:\n${missing}`);
|
|
},
|
|
searchByMacType: hosts => console.log(`Found ${hosts.length} host(s):\n${JSON.stringify(hosts, null, 4)}`),
|
|
ping: ({ hosts, missing }) => {
|
|
console.log(`Found ${hosts.length} host(s):\n${hosts.join('\n')}`);
|
|
console.log(`${missing.length} host(s) missing:\n${missing}`);
|
|
},
|
|
arp: ({ hosts, missing }) => {
|
|
console.log(`Found ${hosts.length} host(s):\n${JSON.stringify(hosts, null, 4)}`);
|
|
console.log(`${missing.length} host(s) missing:\n${missing}`);
|
|
}
|
|
}
|
|
|
|
var start = Date.now();
|
|
var input = process.argv;
|
|
|
|
const errHandler = err => console.log(`Error during ${input[2]}: ${err}`);
|
|
const timeHandler = () => console.log(`\nFinished ${input[2]} in ${(Date.now() - start)/1000}s`)
|
|
|
|
console.log('\n--------------------------------');
|
|
|
|
if (input[2] == 'example') {
|
|
console.log('Finding devices on your network with the same macType as your device...');
|
|
arpping.findMyInfo()
|
|
.then(info => {
|
|
if (info.type) return arpping.searchByMacType(info.type);
|
|
console.log(`No mac type found for your device`);
|
|
})
|
|
.then(hosts => console.log(`Found ${hosts.length} host(s) with your Mac Type (${info.type}):\n${JSON.stringify(hosts, null, 4)}`))
|
|
.catch(errHandler);
|
|
}
|
|
else if (!tests[input[2]]) return console.log(
|
|
`Invalid command: ${input[2]}
|
|
\nValid commands:\n- ${Object.keys(tests).join('\n- ')}`
|
|
);
|
|
else if (input[4] || input[2].indexOf('search') > -1) {
|
|
arpping[input[2]](input[3].trim().split(','), input[4]).then(tests[input[2]]).then(timeHandler).catch(errHandler);
|
|
}
|
|
else if (input[3]) {
|
|
arpping[input[2]](input[3].trim().split(',')).then(tests[input[2]]).then(timeHandler).catch(errHandler);
|
|
}
|
|
else {
|
|
arpping[input[2]]().then(tests[input[2]]).then(timeHandler).catch(errHandler);
|
|
} |