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.

    Install

    npm i is-localhost-ip

    DownloadsWeekly Downloads

    131,906

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    7.75 kB

    Total Files

    5

    Last publish

    Collaborators

    • tinovyatkin