Library used to get fastest server using ICMP (Internet Control Message Protocol).
This library is used to get the fastest server from the list of servers (IP’s or host names). Many times same services are running in different regions to serve clients better. And this library will try to ping the list of servers using ICMP (Internet Control Message Protocol). Based on response time it will find the fastest server which is mostly nearest server.
npm install fastest-server
const FastestServer = require('fastest-server');
const { fastest, stats } = await FastestServer.get(['172.217.19.14', 'google.com'])
// fastest - will have fastest host.
// stats - will be more information about response time and respose type.
// {
// fastest: 'google.com',
// stats: [
// { host: '172.217.19.14', response: 'REPLY', timeElapsed: 9 },
// { host: 'google.com', response: 'REPLY', timeElapsed: 2 }
// ]
// }
(static) FastestServer.get( hosts: Array< String >, [timeout: number]): Promise<{ fastest: string, stats: Array<{ host: string, response: string , timeElapsed: numer }>}>
const { fastest, stats } = await FastestServer.get(['172.217.19.14', 'google.com'], 5000);
console.log(fastest); // google.com
console.log(stats);
// [
// { host: '172.217.19.14', response: 'REPLY', timeElapsed: 9 },
// { host: 'google.com', response: 'REPLY', timeElapsed: 2 }
// ]
response
will be one of the value from array:['REPLY', 'NA', 'DESTINATION_UNREACHABLE', 'SOURCE_QUENCH', 'REDIRECT', 'UNKNOWN']
timeElapsed
will be in milliseconds (ms
)