New:Microsoft Teams Notifications Are Now Available in Socket.Learn more →
Get Started

is-localhost-ip

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

is-localhost-ip

Checks whether given DNS name or IPv4/IPv6 address belongs to a local machine

latest
Source
npmnpm
Version
3.0.1
Version published
Weekly downloads
708K
-10.27%
Maintainers
1
Weekly downloads
 
Created
Source

codecov node

is-localhost-ip

Zero-dependency Node.js utility that checks whether a hostname or IPv4/IPv6 address refers to the local machine.

This package aims to be strict and comprehensive:

  • Validates input as an IP address or a syntactically valid hostname (including bracketed IPv6).
  • Treats private/loopback/link-local ranges as local.
  • Optionally verifies the address exists on the current machine by attempting to bind to it.
  • Falls back to DNS resolution, so it works with hostnames mapped in /etc/hosts or a local resolver.

Installation

npm i is-localhost-ip
# or
yarn add is-localhost-ip
# or
pnpm add is-localhost-ip

Requires Node.js >=18.

Usage

const isLocalhost = require("is-localhost-ip");

(async () => {
  await isLocalhost("127.0.0.1"); // true
  await isLocalhost("::ffff:127.0.0.1"); // true
  await isLocalhost("192.168.0.12"); // true
  await isLocalhost("192.168.0.12", true); // true only if an interface has this address
  await isLocalhost("184.55.123.2"); // false

  await isLocalhost("tino.local"); // true if it resolves to a local address
  await isLocalhost("localhost"); // true
  await isLocalhost("microsoft.com"); // false
})();

API

isLocalhost(ipOrHostname, canBind?)

Returns a Promise<boolean>.

  • ipOrHostname (string): IP address (v4/v6) or a hostname.
  • canBind (boolean, default false): when true, additionally checks that the local machine can bind to the address (i.e., it is configured on a local interface).

The function throws for invalid inputs (non-string values or syntactically invalid hostnames).

Caveats

Internationalized domain names (IDNs) are not supported. If you need IDNs, use Punycode.js (or another punycode implementation) to convert the input to ASCII before calling this function:

const isLocalhost = require("is-localhost-ip");
const punycode = require("punycode");

(async () => {
  await isLocalhost(punycode.toASCII("свобода.рф")); // false
  await isLocalhost(punycode.toASCII("私の.家")); // true
})();

License

is-localhost-ip is available under the MIT license.

Keywords

check-localhost

FAQs

Package last updated on 18 Jan 2026

Related posts