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 = ; var ip = '8.8.8.8'console;var promise = traceroute;promise; promise; promise; promise;
This example would write the following to the console if run from my network...
test trace of 8888 host: '8.8.8.8' hop: '192.168.42.1' time: 98142 hopCount: 0 host: '8.8.8.8' hop: '105.236.3.193' time: 109055 hopCount: 1 host: '8.8.8.8' hop: '41.181.178.77' time: 118899 hopCount: 2 host: '8.8.8.8' hop: '196.44.31.120' time: 12069 hopCount: 3 host: '8.8.8.8' hop: '196.44.0.42' time: 118652 hopCount: 4 host: '8.8.8.8' hop: '41.181.165.115' time: 109449 hopCount: 5 host: '8.8.8.8' hop: '72.14.194.74' time: 112696 hopCount: 6 host: '8.8.8.8' hop: '66.249.95.8' time: 276964 hopCount: 7 host: '8.8.8.8' hop: '209.85.244.240' time: 251944 hopCount: 8 host: '8.8.8.8' hop: '66.249.95.173' time: 300377 hopCount: 9 host: '8.8.8.8' hop: '72.14.236.191' time: 298768 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: 301201 hopCount: 12 DoneHops: undefined satus: true hops: hop: '192.168.42.1' time: 98142 hopCount: 0 hop: '105.236.3.193' time: 109055 hopCount: 1 hop: '41.181.178.77' time: 118899 hopCount: 2 hop: '196.44.31.120' time: 12069 hopCount: 3 hop: '196.44.0.42' time: 118652 hopCount: 4 hop: '41.181.165.115' time: 109449 hopCount: 5 hop: '72.14.194.74' time: 112696 hopCount: 6 hop: '66.249.95.8' time: 276964 hopCount: 7 hop: '209.85.244.240' time: 251944 hopCount: 8 hop: '66.249.95.173' time: 300377 hopCount: 9 hop: '72.14.236.191' time: 298768 hopCount: 10 hop: 'Request timed out' time: 0 hopCount: 11 hop: '8.8.8.8' time: 301201 hopCount: 12 host: '8.8.8.8' hopCount: 13