Skip to content

Small network utility for scanning your LAN for devices or in-use ip addresses

Notifications You must be signed in to change notification settings

afterburn/lanscanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Downloads MIT license

LAN Scanner

LAN Scanner is a small network utility for scanning your LAN for in use MAC/IP addresses. Behind the scenes LAN Scanner makes use of the native arp utility to resolve these MAC/IP addresses.

Installation

npm install --save lanscanner

Basic usage

const LANScanner = require('lanscanner')
LANScanner.scan()
  .then((result) => {
    console.log(result)
    // [
    //   { ip: '192.168.0.22', mac: 'ac:87:a3:2b:e2:ca' },
    //   { ip: '192.168.0.24', mac: 'ac:87:a3:2b:e2:ca' }
    // ]
  })

Documentation

.scan()

Scans your local area network to retrieve a list of in use IP and/or MAC addresses. Returns an object containing a list of IP and/or MAC addresses after the Promise has been fulfilled.

LANScanner.scan()
  .then((result) => {
    console.log(result)
    // [
    //   { ip: '192.168.0.22', mac: 'ac:87:a3:2b:e2:ca' },
    //   { ip: '192.168.0.24', mac: 'ac:87:a3:2b:e2:ca' }
    // ]
  })

If you just want to retrieve a list of in use ip addresses or mac address you can give this function an argument.

LANScanner.scan('ip')
    .then((result) => {
        console.log(result)
        // ['192.168.0.22', '192.168.0.24']
    })

LANScanner.scan('mac')
    .then((result) => {
        console.log(result)
        // ['ac:87:a3:2b:e2:ca', 'ac:87:a3:2b:e2:ca']
    })

Note If you use an argument in the .scan() function you will automatically only get unique values back. This is disabled for when you scan for both IP and MAC addresses. So .scan() without an argument could have duplicate IP and/or MAC address because one MAC address might have 2 IP addresses.

.getInternalIP()

Gets the internal ip address of the current machine.

const internalIP = LANScanner.getInternalIP()
console.log(internalIP) // '192.168.0.22'

.arp()

Executes the arp -a command and will return the raw result as a string after the Promise has been fulfilled.

LANScanner.arp()
  .then((result) => {
    // Example output:
    // ? (192.168.0.22) at ac:87:a3:2b:e2:ca on en0 ifscope [ethernet]
    // ? (192.168.0.22) at ac:87:a3:2b:e2:ca on en1 ifscope [ethernet]
    // ? (192.168.0.24) at c8:3c:85:34:7f:be on en0 ifscope [ethernet]
    // ? (192.168.0.24) at c8:3c:85:34:7f:be on en1 ifscope [ethernet]
  })

.mdns()

Returns a list of all possible ip addresses within the local area networks base ips found within the arp table.

LANScanner.mdns()
  .then(ips => {
      console.log(ips)
      // ['192.168.0.1', ..., '192.168.0.255', '192.168.1.1', ..., '192.168.1.255']
  })

About

Small network utility for scanning your LAN for devices or in-use ip addresses

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published