qtraceroute

0.1.0 • Public • Published

qtraceroute

Simple wrapper around native traceroute command using promises (Q). A trace in node will return an array of hops. Each hop contains the hosts in that hop and the respective round trip times of each host.

The main difference in this implementation is that it will give you live results as they are received.

Install

$ npm install qtraceroute

Example

traceroute = require('./traceroute');
 
var ip = '8.8.8.8'
console.log('test trace of '+ip);
var promise = traceroute.trace(ip);
promise.fail(function(e) {
    "use strict";
    console.log('fail');
    console.log(e);
});
 
 
promise.progress(function (data) {
    "use strict";
    console.log(data);
});
 
promise.fail(function (message) {
    "use strict";
// console.log(message);
});
 
promise.then(function (hops) {
    "use strict";
    console.log("Done ");
    console.log("Hops: " + hops.length);
    console.log(hops);
});

This example would write the following to the console if run from my network...

test trace of 8.8.8.8
{ host: '8.8.8.8',
  hop: '192.168.42.1',
  time: 98.142,
  hopCount: 0 }
{ host: '8.8.8.8',
  hop: '105.236.3.193',
  time: 109.055,
  hopCount: 1 }
{ host: '8.8.8.8',
  hop: '41.181.178.77',
  time: 118.899,
  hopCount: 2 }
{ host: '8.8.8.8',
  hop: '196.44.31.120',
  time: 120.69,
  hopCount: 3 }
{ host: '8.8.8.8',
  hop: '196.44.0.42',
  time: 118.652,
  hopCount: 4 }
{ host: '8.8.8.8',
  hop: '41.181.165.115',
  time: 109.449,
  hopCount: 5 }
{ host: '8.8.8.8',
  hop: '72.14.194.74',
  time: 112.696,
  hopCount: 6 }
{ host: '8.8.8.8',
  hop: '66.249.95.8',
  time: 276.964,
  hopCount: 7 }
{ host: '8.8.8.8',
  hop: '209.85.244.240',
  time: 251.944,
  hopCount: 8 }
{ host: '8.8.8.8',
  hop: '66.249.95.173',
  time: 300.377,
  hopCount: 9 }
{ host: '8.8.8.8',
  hop: '72.14.236.191',
  time: 298.768,
  hopCount: 10 }
{ host: '8.8.8.8',
  hop: 'Request timed out',
  time: 0,
  hopCount: 11 }
{ host: '8.8.8.8', hop: '8.8.8.8', time: 301.201, hopCount: 12 }
Done
Hops: undefined
{ satus: true,
  hops:
   [ { hop: '192.168.42.1', time: 98.142, hopCount: 0 },
     { hop: '105.236.3.193', time: 109.055, hopCount: 1 },
     { hop: '41.181.178.77', time: 118.899, hopCount: 2 },
     { hop: '196.44.31.120', time: 120.69, hopCount: 3 },
     { hop: '196.44.0.42', time: 118.652, hopCount: 4 },
     { hop: '41.181.165.115', time: 109.449, hopCount: 5 },
     { hop: '72.14.194.74', time: 112.696, hopCount: 6 },
     { hop: '66.249.95.8', time: 276.964, hopCount: 7 },
     { hop: '209.85.244.240', time: 251.944, hopCount: 8 },
     { hop: '66.249.95.173', time: 300.377, hopCount: 9 },
     { hop: '72.14.236.191', time: 298.768, hopCount: 10 },
     { hop: 'Request timed out', time: 0, hopCount: 11 },
     { hop: '8.8.8.8', time: 301.201, hopCount: 12 } ],
  host: '8.8.8.8',
  hopCount: 13 }

Readme

Keywords

none

Package Sidebar

Install

npm i qtraceroute

Weekly Downloads

0

Version

0.1.0

License

MIT

Last publish

Collaborators

  • timhaak