{"_id":"is-loopback-addr","_rev":"7-33a6d76a3f181f15528e494fd93a135e","name":"is-loopback-addr","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"is-loopback-addr","version":"1.0.0","author":{"name":"Vasco Santos"},"license":"MIT","_id":"is-loopback-addr@1.0.0","maintainers":[{"name":"vascosantos","email":"vasco.santos@moxy.studio"}],"contributors":[{"name":"Vasco Santos","email":"vasco.santos@ua.pt"}],"dist":{"shasum":"631e0ea96fa865bb8f34d9c15f868b3f8f197c27","tarball":"https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.0.tgz","fileCount":34,"integrity":"sha512-i4RJq/dW1UTaCtLKggtRU7suyu6yYO6rWmsxLaq2jUqg0UVojvPwOyUm7E7MXCbIp2n2U0Z13JpT54bPwmmaiA==","signatures":[{"sig":"MEUCIQCsB184+0/yI/imR+Rtnef641/EDTvFXc3AB7gSi6tIMQIgEh4p00GJcPs0mM6+eHSeJ+3dLL2lGU/TBMIOCvOhQWI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1567683,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffYSdCRA9TVsSAnZWagAAG8IP/j2mdfmH759dJEvGASfC\nwvL/lHLgW0qqnE7UoFyQHRKBoZKFJcr/L2OmDebj8j+EwJS7xskCTwBOOOaP\nSZe5WXoAoq5naCKtrFKNwR44cWrQHzQLbIaCf+SD9CXtGF4XANVshKUMJHRL\n0KeuWLZpuam0CBj7x4gQJiV7pjLiMjnNXTMUGbdOJVtCmLtS2xma7W7zrI0K\nwW12YpQ/ZpPeWgooBkFmp06sYAMaUPVwnmUuHpATpcTQj9hz5EmErlj02QXg\nguoO3MukXa7Sxsl29C5JuD9LXTS9l43NHMvBBVx6lkrtMGL53MKRyp1kOJGf\nI5ij6F+a5nQPLxtPqzyTmnhN5/ksBTRf9iaftDuvG+aC93A6ExywySCGzax9\nQYdZx/it0Fu6v5rwbe511/QRfnZAB2fGBS3Ad9ZBe0GcYcOhYYc4zojTnGIM\nzMzZ8ZN2pU45mF8XXWd5BcDPijN9Qwfpm5qkA2I81tw44Fw3I31fU4OXCbN9\njpxgXZsCf0TfY3EGmNDSEFEY6XpBYdiwa0gmUaXP2xdaykhVHYzKA3k+II/X\n9Y9m6BWQWdDMjmtCEqkW3MbJqiZyRV1IwVsIgkb7D4SD3vjRMWA6zj3TCx2i\nq+v0IjISB13ycU+Lc69l8SgmX1eE9LIbty16RFT/R5RMDcC5nfMsaP5hB2XX\n6JIp\r\n=RLhh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"ee689b341458fe0a6340cc97924b631120f418b1","scripts":{"lint":"aegir lint","test":"aegir test -t node -t browser","build":"aegir build","release":"aegir release --docs","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release-major":"aegir release -t node -t browser --type major --docs","release-minor":"aegir release --type minor --docs"},"_npmUser":{"name":"vascosantos","email":"vasco.santos@moxy.studio"},"_npmVersion":"6.14.6","description":"Check if a IP address is a loopback address","directories":{},"_nodeVersion":"12.18.3","_hasShrinkwrap":false,"devDependencies":{"aegir":"^27.0.0"},"_npmOperationalInternal":{"tmp":"tmp/is-loopback-addr_1.0.0_1602061469316_0.18972311988645973","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"is-loopback-addr","version":"1.0.1","author":{"name":"Vasco Santos"},"license":"MIT","_id":"is-loopback-addr@1.0.1","maintainers":[{"name":"vascosantos","email":"vasco.santos@moxy.studio"}],"contributors":[{"name":"Vasco Santos","email":"vasco.santos@ua.pt"}],"dist":{"shasum":"d4adf50d12d53100da62a397c61d6c83fe40aab9","tarball":"https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz","fileCount":6,"integrity":"sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==","signatures":[{"sig":"MEYCIQDhSflgsOZKmx5eYCeDMt7CMdCYIJFfCldbxDgn6BODAgIhAMtDBPUe/AWdbZ9Vvd0YOpTmK+nSxU6bLFvCBExQPH/f","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgZ36CRA9TVsSAnZWagAA+FgP/2NP0jH689yz5kl9XLU8\n35QJz3EITBIKKo85mJviH7wxE2ph8z5bDETlY8vhxFLQhWuS/xb+DyM16bzf\nKv5lOvzllHwAl68XlCjezas2QKa9OZP1q9K6s/hog8iChaH2ciEbrzy9JWfb\nANPPMV7z0Vbeh6Pu5MYha/wjFZmh0XDDkJExaZ7uk4hS4w9WGkGfokGruaqN\nnyBBySlQQcHTke7feJ8uFt+45YOEZ/P9zv4lCVAtFNq025HQ4266aAhQ6Rtc\n+yWq85z+WpteiMsNvEhXLUF/8PdJpjys5Q/6TbwOBm4bV6/YRSHtN9nZwrYN\nnyWjIGGY4R2g8DxxGHaPYrdHVnr+vzbcwXuq5ZFiuviLVp1+rPKpP6H0Ys2h\nKrFgK8sD/lzbxXk6Q9b/mPYqfKDT08bKh98Paw5cS5FMMenW1dRIEhUR8FPU\n37GAmvLNAvGrsm0QEqFHwKc2zHatONbTD+6YPvIY9T5q2uPMyNruHqX2ZJ2k\n75lcoic9Z54tFVHSyIGwGvQT57U/mxuwFTfI6eJnysW5nIMRgIicP3QuVYIR\nBvZ4tS033eMI36kpDwOa1AYDjaaYqSuXllSFOiFOII5KSMRw5rRUMrPiae0y\ndieFXiRWLcDL4SqNNNTzRDV3H3Tgi/+piWClR7YmVAPQsc93my2KgU8x2aJV\n1/gl\r\n=hoT8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"85d171265238138e3fc173f477c001416a6266e5","scripts":{"lint":"aegir lint","test":"aegir test -t node -t browser","build":"aegir build","release":"aegir release --docs","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release-major":"aegir release -t node -t browser --type major --docs","release-minor":"aegir release --type minor --docs"},"_npmUser":{"name":"vascosantos","email":"vasco.santos@moxy.studio"},"_npmVersion":"6.14.6","description":"Check if a IP address is a loopback address","directories":{},"_nodeVersion":"12.18.3","_hasShrinkwrap":false,"devDependencies":{"aegir":"^27.0.0"},"_npmOperationalInternal":{"tmp":"tmp/is-loopback-addr_1.0.1_1602330105929_0.8620165667454396","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"is-loopback-addr","version":"2.0.0","author":{"name":"Vasco Santos"},"license":"MIT","_id":"is-loopback-addr@2.0.0","maintainers":[{"name":"vascosantos","email":"santos.vasco10@gmail.com"}],"homepage":"https://github.com/vasco-santos/is-loopback-addr#readme","bugs":{"url":"https://github.com/vasco-santos/is-loopback-addr/issues"},"dist":{"shasum":"7fdc9eb9a88a6b15b060b67aa8595d6bd382559d","tarball":"https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.0.tgz","fileCount":8,"integrity":"sha512-DOy0j1x0sIhqjoQD3gB9JWz9tRIxPEUAzML6JzUioP8LCyn24TTVPReuKj67Z89CBTXbgGn69q858+Uq0VRCww==","signatures":[{"sig":"MEUCIQDmAQhiqSPSs03HtoIiI+bB8HPk35lruvi5GSepD1f9oQIgG3E1UEFR0mTKy2MgI6uyJKhmfj6PSk+GmH47wZFtDKQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7314,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3q6WCRA9TVsSAnZWagAAmBsP/R0H9bDRlib788TngfZf\nkIXxwtfp9noq1O9GL8chYEOpjZCRulwnTxDoQ0q6TEeRf04uGF3OwlI6R0Nf\nsaU5x/Qke5EXVv5CTml+CBKs7mYisldK/qeuhxu/cPyzqL6Y8/3nfDIseHOT\nupIBm408zyegpbV+LcPT4isREpjk8G1RgOSQs+bqMAnAwif1q57SBCQiHso/\nIwDdDSB7nJNs1jJ5E+bICoMMujcvbUong6FEQHZqVVhQgL53EunnlFLslciv\n/KPcVlzioXbMCmLgs9+uhFCKVp+Ue9eqXw03FiGSUHkKIudVCf+P/DnuyDAg\nq3YhGYksC9Xh41M5vq0UGxVmcjD5XZb3hAGZFvhl0YK8LeUxZ39Uz7tnKJUV\nrOi2GExqpawRAhuYDdtqTq/MH32igcNWuOVWnAx/M+kpLNDG8suqtzE+DRmV\n8KjKHp9WkQprBpYSoXGFq7MaQThvjHh6xjJPZ2njVuwIYHX9Vp6QK1FXzZ8g\nCBzPtZ80F8YCL6zI10LTt0VBpuhwGeEoK4hdL6dUJgWqac3y1dRFIDdc/0pm\n1WGyyHBfMemoJcrxckTc5eV5szr5ThLUTiLravOxe6cZmOQmqpZU/2oyXzVT\nDOZOJ3rprpk9N6RbrFvjxJydnJz5dUTgLDgxH2smZWF3Uw8cvJIFxivCrVA2\nYTxq\r\n=PDuH\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"gitHead":"c4b042e86c0f1aa077809b2e9238eb8a24b9e3d6","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"release":"major","breaking":true},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"lint":"aegir lint","test":"aegir test -f ./dist/test","build":"tsc","pretest":"npm run build","release":"semantic-release","dep-check":"aegir dep-check dist/src/**/*.js dist/test/**/*.js","test:node":"npm run test -- -t node --cov","test:chrome":"npm run test -- -t browser","test:firefox":"npm run test -- -t browser -- --browser firefox","test:electron-main":"npm run test -- -t electron-main","test:chrome-webworker":"npm run test -- -t webworker","test:firefox-webworker":"npm run test -- -t webworker -- --browser firefox"},"_npmUser":{"name":"vascosantos","email":"santos.vasco10@gmail.com"},"repository":{"url":"git+https://github.com/vasco-santos/is-loopback-addr.git","type":"git"},"_npmVersion":"7.24.2","description":"Check if a IP address is a loopback address","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"_hasShrinkwrap":false,"devDependencies":{"aegir":"^36.1.3"},"_npmOperationalInternal":{"tmp":"tmp/is-loopback-addr_2.0.0_1641983638799_0.856968939650707","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"is-loopback-addr","version":"2.0.1","author":{"name":"Vasco Santos"},"license":"MIT","_id":"is-loopback-addr@2.0.1","maintainers":[{"name":"vascosantos","email":"santos.vasco10@gmail.com"}],"homepage":"https://github.com/vasco-santos/is-loopback-addr#readme","bugs":{"url":"https://github.com/vasco-santos/is-loopback-addr/issues"},"dist":{"shasum":"0b43534f0b16ff899f1f19f322b59c38bd25fa03","tarball":"https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.1.tgz","fileCount":8,"integrity":"sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw==","signatures":[{"sig":"MEQCIF49HRx0Aashz1KskvrvfuT3ds3trRnd/9+hBktCpeeJAiA+fswhTKuUihCdRyafU172TVaC+oB6XvPE75PRBCJFYw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7320,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3tRlCRA9TVsSAnZWagAAYUEQAJSkXcvWagq/8ZXDTJOw\nLKXE7mXBK2ufKiIlGv+F7Sw3d9BVk6ivAtJrDbDMqf/GA5DJyl+3BKKWVSKL\nO7eDovkwpZDBcWaoGwXFpkuy9w9kjjHpfHZG5X6+LRrGn8htEnFiwkd7dtOz\nK9F/aQ94ydF5crX4nXDmGVIJDdzIRiP7nD1zgNw5ITwjvIS8MVFWB3cJmJwv\nftpQZlQEcGBJs60XhdgLQ8/uaKTZVdsrSYlxoSoOPv/6REYA7nHs40TH4Q6z\nQ9l1xCoJBUJW2Dxi8e4rTd2XEpQd3PHGnDXc2gGM36DoAR5u7n2DEeXEvlFt\nU6IFmD3cpOOtH2g6VX4J5ES8joKTQkrdGst8nswjWdJZ4J8co4/KhJ4DtyHU\nBbNhLKasUoTlHQgm45MGL/z0bhu2KVeNhljSsHQIbWP9CeF3LmKmokZYBgQK\nB3Ju+bwFANUeECspvQBZspKB1TZreSs4Nwggd6pDH8WQW6FVitdznsJ7Nwwn\neuZdHQTNxAI9SkHchfNy9L3tEdjTzYqje3tT0U/AmlLAxSag9e4rrNqgya4i\nUkmMCknPx+PV4+d4QtK/a7ePiSwgz7E1vu0UU4imoo+IjpYz923vxvuNIz6c\nyAKGDWO46PReb0UA7I3lqN5GhOVH/yGjMeoXTEiMdZZt5Bw6c5rjvmZ+5jGc\nTAOl\r\n=RYyK\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"gitHead":"f1c9d703a8ea69f65ec74684799a595202d7f14f","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"release":"major","breaking":true},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"lint":"aegir lint","test":"aegir test -f ./dist/test","build":"tsc","pretest":"npm run build","release":"semantic-release","dep-check":"aegir dep-check dist/src/**/*.js dist/test/**/*.js","test:node":"npm run test -- -t node --cov","test:chrome":"npm run test -- -t browser --cov","test:firefox":"npm run test -- -t browser -- --browser firefox","test:electron-main":"npm run test -- -t electron-main","test:chrome-webworker":"npm run test -- -t webworker","test:firefox-webworker":"npm run test -- -t webworker -- --browser firefox"},"_npmUser":{"name":"vascosantos","email":"santos.vasco10@gmail.com"},"repository":{"url":"git+https://github.com/vasco-santos/is-loopback-addr.git","type":"git"},"_npmVersion":"7.24.2","description":"Check if a IP address is a loopback address","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"_hasShrinkwrap":false,"devDependencies":{"aegir":"^36.1.3"},"_npmOperationalInternal":{"tmp":"tmp/is-loopback-addr_2.0.1_1641993317575_0.2457975267651964","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"is-loopback-addr","version":"2.0.2","author":{"name":"Vasco Santos"},"license":"MIT","_id":"is-loopback-addr@2.0.2","maintainers":[{"name":"vascosantos","email":"santos.vasco10@gmail.com"}],"homepage":"https://github.com/vasco-santos/is-loopback-addr#readme","bugs":{"url":"https://github.com/vasco-santos/is-loopback-addr/issues"},"dist":{"shasum":"70a6668fa3555d47caebdcee045745ab80adf5e4","tarball":"https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.2.tgz","fileCount":8,"integrity":"sha512-26POf2KRCno/KTNL5Q0b/9TYnL00xEsSaLfiFRmjM7m7Lw7ZMmFybzzuX4CcsLAluZGd+niLUiMRxEooVE3aqg==","signatures":[{"sig":"MEQCIEIs6Ie4YozNVCJwsvo+eyQ6PPUl6mzDykDibk/C+KzeAiA2wpHeTRNfjKsvqNAZNqfnkhlu2YsYv+zJ/cT0os3TNQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7320},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"gitHead":"e95bbbeea7dfd2b09f057cf58464605a7cf4ca8d","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"release":"major","breaking":true},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"lint":"aegir lint","test":"aegir test -f ./dist/test","build":"tsc","pretest":"npm run build","release":"semantic-release","dep-check":"aegir dep-check dist/src/**/*.js dist/test/**/*.js","test:node":"npm run test -- -t node --cov","test:chrome":"npm run test -- -t browser --cov","test:firefox":"npm run test -- -t browser -- --browser firefox","test:electron-main":"npm run test -- -t electron-main","test:chrome-webworker":"npm run test -- -t webworker","test:firefox-webworker":"npm run test -- -t webworker -- --browser firefox"},"_npmUser":{"name":"vascosantos","email":"santos.vasco10@gmail.com"},"repository":{"url":"git+https://github.com/vasco-santos/is-loopback-addr.git","type":"git"},"_npmVersion":"7.24.2","description":"Check if a IP address is a loopback address","directories":{},"_nodeVersion":"18.17.0","eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"_hasShrinkwrap":false,"devDependencies":{"aegir":"^36.1.3"},"_npmOperationalInternal":{"tmp":"tmp/is-loopback-addr_2.0.2_1691994288455_0.31332355973499615","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"is-loopback-addr","version":"2.1.0","description":"Check if a IP address is a loopback address","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"lint":"aegir lint","dep-check":"aegir dep-check dist/src/**/*.js dist/test/**/*.js","build":"tsc","pretest":"npm run build","test":"aegir test -f ./dist/test","test:chrome":"npm run test -- -t browser --cov","test:chrome-webworker":"npm run test -- -t webworker","test:firefox":"npm run test -- -t browser -- --browser firefox","test:firefox-webworker":"npm run test -- -t webworker -- --browser firefox","test:node":"npm run test -- -t node --cov","test:electron-main":"npm run test -- -t electron-main","release":"semantic-release"},"author":{"name":"Vasco Santos"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/vasco-santos/is-loopback-addr.git"},"bugs":{"url":"https://github.com/vasco-santos/is-loopback-addr/issues"},"homepage":"https://github.com/vasco-santos/is-loopback-addr#readme","devDependencies":{"aegir":"^48.1.2"},"gitHead":"75b6b767c1b23eb9c0edf93f8414acc8a51f1bf8","_id":"is-loopback-addr@2.1.0","_nodeVersion":"24.18.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-77bB59Coq+vGTibZlnuYVU1bUuiboGZ62ZJ7TqmgYKb+hko9dSlqS5OfqvmPZhwJys48At4y4D1UJP3GuvoXtQ==","shasum":"29648233e2e6ff2a26c9ed02ab1500ae7f854f73","tarball":"https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.1.0.tgz","fileCount":8,"unpackedSize":10727,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCs7exFJJHfYaI+2WVlu9a4BNgsb/TwlnQplFiWLwzJwwIhAOwRYOAFL9E3VI+epsW5oXLhyHKPzjEWMpOa+okWFA9c"}]},"_npmUser":{"name":"vascosantos","email":"santos.vasco10@gmail.com"},"directories":{},"maintainers":[{"name":"vascosantos","email":"santos.vasco10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/is-loopback-addr_2.1.0_1786453164493_0.1252057605498893"},"_hasShrinkwrap":false}},"time":{"created":"2020-10-07T09:04:29.315Z","modified":"2026-08-11T12:59:24.859Z","1.0.0":"2020-10-07T09:04:29.499Z","1.0.1":"2020-10-10T11:41:46.067Z","2.0.0":"2022-01-12T10:33:58.979Z","2.0.1":"2022-01-12T13:15:17.736Z","2.0.2":"2023-08-14T06:24:48.626Z","2.1.0":"2026-08-11T12:59:24.669Z"},"bugs":{"url":"https://github.com/vasco-santos/is-loopback-addr/issues"},"author":{"name":"Vasco Santos"},"license":"MIT","homepage":"https://github.com/vasco-santos/is-loopback-addr#readme","repository":{"type":"git","url":"git+https://github.com/vasco-santos/is-loopback-addr.git"},"description":"Check if a IP address is a loopback address","maintainers":[{"name":"vascosantos","email":"santos.vasco10@gmail.com"}],"readme":"# is-loopback-addr\n\n[![Build Status](https://github.com/vasco-santos/is-loopback-addr/actions/workflows/js-test-and-release.yml/badge.svg?branch=main)](https://github.com/vasco-santos/is-loopback-addr/actions/workflows/js-test-and-release.yml)\n[![dependencies Status](https://david-dm.org/vasco-santos/is-loopback-addr/status.svg)](https://david-dm.org/vasco-santos/is-loopback-addr)\n[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)\n[![Downloads](https://img.shields.io/npm/dm/is-loopback-addr.svg)](https://www.npmjs.com/package/is-loopback-addr)\n[![Minzipped size](https://badgen.net/bundlephobia/minzip/is-loopback-addr)](https://bundlephobia.com/result?p=is-loopback-addr)\n[![codecov](https://img.shields.io/codecov/c/github/vasco-santos/is-loopback-addr.svg?style=flat-square)](https://codecov.io/gh/vasco-santos/is-loopback-addr)\n\n> Check if a IP address is a loopback address\n\nVarious Internet Engineering Task Force ([IETF](https://www.ietf.org/)) standards reserve the IPv4 address block `127.0.0.0/8` and the IPv6 address `::1/128` for this purpose. The most common IPv4 address used is 127.0.0.1. Commonly these loopback addresses are mapped to the hostnames, localhost or loopback. For more information check [rfc5735](https://tools.ietf.org/html/rfc5735) and [rfc3513](https://tools.ietf.org/html/rfc3513#section-2.4).\n\nThis checks whether a **string is a loopback address literal**, per `127.0.0.0/8` and `::1/128`. It accepts any spelling the platform URL parser canonicalises into those ranges, which includes `127.1`, `2130706433`, `0x7f000001` and `0177.0.0.1`. Hostnames are never resolved: `localhost` is `false`, and `::ffff:127.0.0.1` is `false` because it is in neither range.\n\n**This is not an SSRF filter.** It classifies literals by RFC range. It does not know about DNS, redirects, IPv4-mapped addresses or any other route to the loopback interface, and it should not be the only check between untrusted input and an outbound request.\n\n## Install\n\n```sh\nnpm i is-loopback-addr\n```\n\n## Usage\n\n```js\nimport { isLoopbackAddr } from 'is-loopback-addr'\n\nconsole.log(isLoopbackAddr('127.0.0.1')) // true\nconsole.log(isLoopbackAddr('192.168.0.1')) // false\nconsole.log(isLoopbackAddr('22.2.0.1')) // false\nconsole.log(isLoopbackAddr('::1')) // true\nconsole.log(isLoopbackAddr('2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095')) // false\n```\n\n## Contribute\n\nFeel free to dive in! [Open an issue](https://github.com/vasco-santos/is-loopback-addr/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) © Vasco Santos","readmeFilename":"README.md"}