You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

pid-port

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pid-port

Get the ID of the process that uses a certain port

Source
npmnpm
Version
2.0.0
Version published
Weekly downloads
300K
9.32%
Maintainers
1
Weekly downloads
 
Created
Source

pid-port

Get the ID of the process that uses a certain port

Install

npm install pid-port

Usage

import {portToPid} from 'pid-port';

try {
	// Only checks localhost by default
	console.log(await portToPid(8080));
	//=> 1337

	// Same as above
	console.log(await portToPid({port: 8080}));
	//=> 1337

	const pids = await portToPid([8080, 22]);

	console.log(pids.get(8080));
	//=> 1337

	console.log(pids.get(22));
	//=> 12345

	// Specific host
	console.log(await portToPid({port: 8080, host: '127.0.0.1'}));
	//=> 1337

	// Check all interfaces (use with caution)
	console.log(await portToPid({port: 8080, host: '*'}));
	//=> 1337
} catch (error) {
	console.log(error);
	//=> 'Could not find a process that uses port `8080` on localhost'
}

API

portToPid(portOrOptions)

Get the process ID for a port.

Returns a Promise<number | undefined> (integer) with the process ID.

[!NOTE] By default, only checks localhost (127.0.0.1 and ::1). Use {host: '*'} to check all interfaces if needed.

Linux privilege requirements: On Linux systems, process ID information may not be visible to non-privileged users. If a port is found but no PID is returned, the package will attempt to use lsof as a fallback (requires lsof to be installed).

portOrOptions

Type: number | {port: number, host?: string}

Either a port number directly, or an options object with:

  • port (number): The port to look up
  • host (string, optional): The host to filter by. Use '*', '0.0.0.0', or '::' for all interfaces. Use 'localhost' for explicit localhost filtering.

portToPid(ports)

Get the process IDs for multiple ports.

Returns a Promise<Map<number, number>> (integer) with the port as key and the process ID as value.

@example

import {portToPid} from 'pid-port';

try {
	const pids = await portToPid([8080, 22]);

	console.log(pids.get(8080));
	//=> 1337

	console.log(pids.get(22));
	//=> 12345
} catch (error) {
	console.log(error);
	//=> 'Could not find a process that uses port `8080`'
}

ports

Type: number[] (integer)

The ports to look up.

pidToPorts(pid)

Get the ports for a process ID.

Returns a Promise<Set<number>> with the ports.

@example

import {pidToPorts} from 'pid-port';

try {
	const ports = await pidToPorts(1337);
	//=> Set { 8080, 22 }
} catch (error) {
	console.log(error);
}

pid

Type: number

The process ID to look up.

pidToPorts(pids)

Get the ports for multiple process IDs.

Returns a Promise<Map<number, Set<number>>> with the process ID as the key and the ports as value.

@example

import {pidToPorts} from 'pid-port';

try {
	const ports = await pidToPorts([1337, 12345]);
	//=> Map { 1337 => Set { 8080, 22 }, 12345 => Set { 3000 } }
} catch (error) {
	console.log(error);
}

pids

Type: number[]

The process IDs to look up.

allPortsWithPid(options?)

Get all ports with their process ID, optionally filtered by host.

Returns a Promise<Map<number, number>> (integer) with the port as key and the process ID as value.

[!NOTE] By default, only checks localhost (127.0.0.1 and ::1). Use {host: '*'} to check all interfaces if needed.

@example

import {allPortsWithPid} from 'pid-port';

try {
	// Only localhost ports
	const localhost = await allPortsWithPid();
	//=> Map { 8080 => 1337, 22 => 12345 }

	// Specific host
	const filtered = await allPortsWithPid({host: '127.0.0.1'});
	//=> Map { 8080 => 1337, 22 => 12345 }

	// All interfaces (use with caution)
	const all = await allPortsWithPid({host: '*'});
	//=> Map { 8080 => 1337, 22 => 12345, 3000 => 14311 }
} catch (error) {
	console.log(error);
}

options

Type: object (optional)

host

Type: string (optional)

The host to filter by. Use '*', '0.0.0.0', or '::' for all interfaces.

portBindings(port, options?)

Get all process bindings for a specific port.

Returns a Promise<Array<{host: string; pid: number}>> with detailed binding information.

[!NOTE] By default, only checks localhost (127.0.0.1 and ::1). Use {host: '*'} to check all interfaces if needed.

@example

import {portBindings} from 'pid-port';

try {
	// Only localhost bindings
	const bindings = await portBindings(8080);
	//=> [{host: '127.0.0.1', pid: 1337}]

	// All interfaces (use with caution)
	const allBindings = await portBindings(8080, {host: '*'});
	//=> [
	//   {host: '127.0.0.1', pid: 1337},
	//   {host: '192.168.1.1', pid: 5678}
	// ]
} catch (error) {
	console.log(error);
}

port

Type: number (integer)

The port to look up.

options

Type: object (optional)

host

Type: string (optional)

The host to filter by. Use '*', '0.0.0.0', or '::' for all interfaces.

  • fkill-cli - Uses this package to let you kill the process that occupies a certain port
  • pid-cwd - Find the working directory of a process from its process ID

Keywords

pid

FAQs

Package last updated on 21 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts