ip-monitor

1.1.1 • Public • Published

ip-monitor

Build Status dependencies Status npm version

A node.js library to monitor your external ip for changes

Installation

npm install ip-monitor

Usage

basic

const IpMonitor = require('ip-monitor');
const ipMonitor = new IpMonitor();
 
ipMonitor.on('change', (prevIp, newIp) => {
    console.log(`IP changed from ${prevIp} to ${newIp}`);
});
 
ipMonitor.on('error', (error) => {
    console.error(error);
});
 
ipMonitor.start();
 
 

with custom configuration

const IpMonitor = require('ip-monitor');
const ipMonitor = new IpMonitor({
    pollingInterval: 36000,
    verbose: true,
    externalIp: {
        timeout: 1000,
        getIP: 'parallel',
        services: ['http://ifconfig.co/x-real-ip', 'http://icanhazip.com/'],
        replace: true,
        verbose: true
    }
});
 
ipMonitor.on('change', (prevIp, newIp) => {
    console.log(`IP changed from ${prevIp} to ${newIp}`);
});
 
ipMonitor.on('error', (error) => {
    console.error(error);
});
 
ipMonitor.start();

Configuration

new IpMonitor([config]) accepts a configuration object with the following optional properties:

  • pollingInterval: <Integer>: how often to poll for ip changes, default 1 day
  • externalIp: <Object>: configuration passed directly to external-ip

Methods

  • .start(): start watching
  • .stop(): stop watching
  • .poll(): poll for ip manually

Events

  • change: fired when the external ip has changed. it will also fire the first time .start() or .poll() are invoked.
  • error: typical error handling here

Test

Change your working directory to the project's root, npm install to get the development dependencies and then npm test

Dependencies (1)

Dev Dependencies (2)

Package Sidebar

Install

npm i ip-monitor

Weekly Downloads

10

Version

1.1.1

License

ISC

Unpacked Size

8.11 kB

Total Files

9

Last publish

Collaborators

  • j.chaniotis