Awesome
tcpie
Ping any TCP port
tcpie is a tool to measure latency and verify the reliabilty of a TCP connection. It does so by initiating a handshake followed by an immediately termination of the socket. While many existing tools require raw socket access, tcpie runs fine in user space. An API for use as a module is also provided.
CLI
Installation
$ npm i -g tcpie
Example
$ tcpie -c 5 google.com 443
TCPIE google.com (188.21.9.120) port 443
connected to google.com:443 seq=1 srcport=59053 time=12.9 ms
connected to google.com:443 seq=2 srcport=59054 time=10.0 ms
connected to google.com:443 seq=3 srcport=59055 time=10.1 ms
connected to google.com:443 seq=4 srcport=59056 time=11.4 ms
connected to google.com:443 seq=5 srcport=59057 time=10.4 ms
--- google.com tcpie statistics ---
5 handshakes attempted, 5 succeeded, 0% failed
rtt min/avg/max/stdev = 10.012/10.970/12.854/1.190 ms
API
Usage
import {tcpie} from "tcpie";
const pie = tcpie("google.com", 443, {count: 10, interval: 500, timeout: 2000});
pie.on("connect", function(stats) {
console.info("connect", stats);
}).on("error", function(err, stats) {
console.error(err, stats);
}).on("timeout", function(stats) {
console.info("timeout", stats);
}).on("end", function(stats) {
console.info(stats);
// -> {
// -> sent: 10,
// -> success: 10,
// -> failed: 0,
// -> target: { host: "google.com", port: 443 }
// -> }
}).start();
tcpie(host, [port], [options])
host
string : the destination host name or IP address. Required.port
number : the destination port. Default:22
.opts
object : options for count, interval and timeout. Defaults:Infinity
,1000
,3000
.
tcpie#start()
Start connecting
tcpie#stop()
Stops connecting
options object
count
number : the number of connection attempts in milliseconds (default: Infinity).interval
number : the interval between connection attempts in milliseconds (default: 1000).timeout
number : the connection timeout in milliseconds (default: 3000).
Events
connect
: Arguments:stats
. Connection attempt succeeded.timeout
: Arguments:stats
. Connection attempt ran into the timeout.error
: Arguments:err
,stats
. Connection attempt failed.end
: Arguments:stats
. All connection attempts have finished.
stats argument properties
sent
number : number of total attempts made.success
number : number of successfull attempts.failed
number : number of failed attempts.target
object : target details:host
andport
.
The following properties are present on all events except end
:
rtt
number : roundtrip time in milliseconds. undefined if failed.socket
object : socket details:localAddress
,localPort
,remoteAddress
,remotePort
.
© silverwind, distributed under BSD licence