is-localhost-ip
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

codecov node

is-localhost-ip

Comprehensive and robust library to checks whether given host name or IPv4/IPv6 address belongs to the local machine

Main difference from other libraries here is comprehensiveness: we start from strict RegExp checks (for IP address first, and then for correctness to be a host name), then fallback to DNS resolver (so it works with something like john.dev remapped locally in hosts or with local resolver).

All this in just ~100 lines of code without external dependencies.

Installation

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

Example

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 the local machine has an interface with that address
  await isLocalhost('184.55.123.2'); // false

  await isLocalhost('tino.local'); // true
  await isLocalhost('localhost'); // true
  await isLocalhost('microsoft.com'); // false
})();

Caveats

Doesn't work with internationalized (RFC 3492 or RFC 5891) domain names. If you need that please use wonderful Punycode.js to convert the string before passing to this library:

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.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 2.0.0
    186,214
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 2.0.0
    186,214
  • 1.4.0
    7,086
  • 1.3.0
    79
  • 1.2.0
    0
  • 1.1.0
    0
  • 1.0.0
    0

Package Sidebar

Install

npm i is-localhost-ip

Weekly Downloads

193,379

Version

2.0.0

License

MIT

Unpacked Size

7.75 kB

Total Files

5

Last publish

Collaborators

  • tinovyatkin