pick-port

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

Usage no npm install needed!

<script type="module">
  import pickPort from 'https://cdn.skypack.dev/pick-port';
</script>

README

pick-port

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

$ npm install pick-port

Usage

const pickPort = require('pick-port');

Get a random UDP port in IP 0.0.0.0:

const port = await pickPort();

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

await pickPort({ type, ip, minPort, maxPort, reserveTimeout })

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

Option Type Description Required Default
type String 'udp' or 'tcp'. No 'udp'
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.

Author

License

ISC