pick-port
TypeScript icon, indicating that this package has built-in type declarations

2.0.1 • Public • Published

pick-port

Get an available TCP or UDP port for the given IP address.

$ npm install pick-port

Usage

import { pickPort } from 'pick-port';

Get a random UDP port in IP 0.0.0.0:

const port = await pickPort({ type: 'udp' });

Get a TCP port in a specific IP and port range:

const port = await pickPort({
	type: 'tcp',
	ip: '192.168.10.111',
	minPort: 8000,
	maxPort: 9000,
});

API

async pickPort({ type, ip, minPort, maxPort, reserveTimeout }): Promise

Resolves with an available port or rejects with an error otherwise.

Option Type Description Required Default
type String 'udp' or 'tcp'. Yes
ip String IPv4 or IPv6 address for which a free port is requested. No '0.0.0.0'
minPort Number Minimum port. No 10000
maxPort Number Maximum port. No 20000
reserveTimeout Number Timeout in seconds during which a returned port will be internally reserved and prevented of being returned on a future call before the timeout has elapsed. No 5
  • @returns {Number} A free port.

The reserveTimeout option provides the application with the required time to bind the free port before it is given again on a future call to this library.

Authors

License

ISC

Package Sidebar

Install

npm i pick-port

Weekly Downloads

4,545

Version

2.0.1

License

MIT

Unpacked Size

22.1 kB

Total Files

19

Last publish

Collaborators

  • ibc
  • jmillan