Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/silverwind/tcpie
CLI tool to ping any TCP port
https://github.com/silverwind/tcpie
cli network-test nodejs port-scanner port-test
Last synced: about 1 month ago
JSON representation
CLI tool to ping any TCP port
- Host: GitHub
- URL: https://github.com/silverwind/tcpie
- Owner: silverwind
- Created: 2015-01-01T19:25:55.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-13T19:11:31.000Z (8 months ago)
- Last Synced: 2024-04-26T09:43:59.804Z (8 months ago)
- Topics: cli, network-test, nodejs, port-scanner, port-test
- Language: JavaScript
- Homepage:
- Size: 561 KB
- Stars: 52
- Watchers: 3
- Forks: 8
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# tcpie
[![](https://img.shields.io/npm/v/tcpie.svg?style=flat)](https://www.npmjs.org/package/tcpie) [![](https://img.shields.io/npm/dm/tcpie.svg)](https://www.npmjs.org/package/tcpie) [![](https://img.shields.io/bundlephobia/minzip/tcpie.svg)](https://bundlephobia.com/package/tcpie) [![](https://packagephobia.com/badge?p=tcpie)](https://packagephobia.com/result?p=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
```js
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` and `port`.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](https://github.com/silverwind), distributed under BSD licence