UNPKG

nodearp

Version:

nodeJS Address Resolution Display and Control Getter Methods

47 lines (43 loc) 1.44 kB
var exec = require('child_process').exec exports.entries = function(cb){ exec('arp -an', function(err, stdout, stderr){ var entries = [] stdout.split('\n').map((i) => { var entry = i.split(/[ ,]+/) if (entry[1]) { entries.push({ ip: entry[1].replace('(','').replace(')','') , mac: entry[3].replace(/^0:/g, '00:').replace(/:0:/g, ':00:').replace(/:0$/g, ':00').replace('(incomplete)', '') , interface: entry[5] }) } }) return cb(entries) }) } exports.onInterface = function(interface, cb){ exec('arp -ani ' + interface, function(err, stdout, stderr){ var entries = [] stdout.split('\n').map((i) => { var entry = i.split(/[ ,]+/) if (entry[1]) entries.push({ ip: entry[1].replace('(','').replace(')','') , mac: entry[3].replace(/^0:/g, '00:').replace(/:0:/g, ':00:').replace(/:0$/g, ':00').replace('(incomplete)', '') , interface: entry[5] }) }) return cb(entries) }) } exports.self = function(cb){ exec('arp -n ' + require('ip').address(), function(err, stdout, stderr){ var entry = stdout.split(/[ ,]+/) var entry = { ip: entry[1].replace('(','').replace(')','') , mac: entry[3] !== 'no' ? entry[3].replace(/^0:/g, '00:').replace(/:0:/g, ':00:').replace(/:0$/g, ':00') : '' , interface: entry[5] || '' } return cb(entry) }) }