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

Package Sidebar

Install

npm i ip-monitor

Weekly Downloads

13

Version

1.1.1

License

ISC

Unpacked Size

8.11 kB

Total Files

9

Last publish

Collaborators

  • j.chaniotis