
Security News
Feross on Risky Business Weekly Podcast: npm’s Ongoing Supply Chain Attacks
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.
@juzi/nodejs-traceroute
Advanced tools
Node.js wrapper around tracert and traceroute process
npm install --save nodejs-traceroute
By default, the domain name given will be automatically resolved. Explicitly force IPv4 or IPv6 tracerouting by passing either ipv4
or ipv6
to the constructor.
import { BuildTraceroute } from 'nodejs-traceroute'
try {
const tracer = BuildTraceroute()
tracer
.on('pid', (pid) => {
console.log(`pid: ${pid}`);
})
.on('destination', (destination) => {
console.log(`destination: ${destination}`);
})
.on('hop', (hop) => {
console.log(`hop: ${JSON.stringify(hop)}`);
})
.on('close', (code) => {
console.log(`close: code ${code}`);
});
tracer.trace('github.com');
} catch (ex) {
console.log(ex);
}
pid: 4414
destination: 192.30.253.112
hop: {"hop":1,"ip":"192.168.0.1","rtt1":"1.817 ms"}
hop: {"hop":2,"ip":"10.233.33.58","rtt1":"3.149 ms"}
hop: {"hop":3,"ip":"10.55.96.182","rtt1":"7.820 ms"}
hop: {"hop":4,"ip":"128.241.1.205","rtt1":"178.187 ms"}
hop: {"hop":5,"ip":"129.250.2.9","rtt1":"211.609 ms"}
hop: {"hop":6,"ip":"129.250.3.43","rtt1":"229.458 ms"}
hop: {"hop":7,"ip":"129.250.2.163","rtt1":"237.948 ms"}
hop: {"hop":8,"ip":"129.250.2.138","rtt1":"237.913 ms"}
hop: {"hop":9,"ip":"129.250.2.133","rtt1":"241.748 ms"}
hop: {"hop":10,"ip":"*","rtt1":"*"}
hop: {"hop":11,"ip":"*","rtt1":"*"}
hop: {"hop":12,"ip":"*","rtt1":"*"}
hop: {"hop":13,"ip":"*","rtt1":"*"}
hop: {"hop":14,"ip":"*","rtt1":"*"}
hop: {"hop":15,"ip":"*","rtt1":"*"}
hop: {"hop":16,"ip":"*","rtt1":"*"}
hop: {"hop":17,"ip":"*","rtt1":"*"}
hop: {"hop":18,"ip":"*","rtt1":"*"}
hop: {"hop":19,"ip":"*","rtt1":"*"}
hop: {"hop":20,"ip":"*","rtt1":"*"}
hop: {"hop":21,"ip":"*","rtt1":"*"}
hop: {"hop":22,"ip":"*","rtt1":"*"}
hop: {"hop":23,"ip":"*","rtt1":"*"}
hop: {"hop":24,"ip":"*","rtt1":"*"}
hop: {"hop":25,"ip":"*","rtt1":"*"}
hop: {"hop":26,"ip":"*","rtt1":"*"}
hop: {"hop":27,"ip":"*","rtt1":"*"}
hop: {"hop":28,"ip":"*","rtt1":"*"}
hop: {"hop":29,"ip":"*","rtt1":"*"}
hop: {"hop":30,"ip":"*","rtt1":"*"}
close: code 0
The BuildTraceroute
function is used to create a traceroute object based on the provided options.
opts
(optional): An object that contains the following properties:
ipVersion
(optional): The IP version to use for the traceroute.queries
(optional): The number of queries to send per hop. Default is 1
.maxHopNumber
(optional): The maximum number of hops to trace. Default is 10
.waitSecond
(optional): The number of seconds to wait between each hop. Default is 1
.pauseMs
(optional): The number of milliseconds to pause between each hop. Default is 0
.import { BuildTraceroute } from 'traceroute-lib'
const tracer = BuildTraceroute({
ipVersion: IpVersion.IPV4,
queries: 1,
maxHopNumber: 10,
waitSecond: 1,
pauseMs: 0,
})
tracer.on('hop', () => {
// Will only trigger up to 10 times
})
tracer.trace('github.com')
The parseRttStr
function is a utility function that parses a string representation of round-trip time (RTT) and returns the numeric value of the RTT in milliseconds. It can help convert rtt data in hop events. It takes a single parameter rttStr
, which is a string representation of the RTT.
import { parseRttStr } from './utils'
const rtt = parseRttStr('6.35 ms')
console.log(rtt) // Output: 6.35
FAQs
Node.js wrapper around tracert and traceroute process
We found that @juzi/nodejs-traceroute demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
Research
/Security News
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.