Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

pick-port

versatica21.9kMIT2.1.0TypeScript support: included

Get a free TCP or UDP port for the given IP address

nodejs, network, port, tcp, udp

readme

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<number>

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