Check if subnets overlap with existing subnets. Works in both Node.js and browser environments.
npm install subnet-overlap
npm install @SangHakLee/subnet-overlap --registry=https://npm.pkg.github.com
const subnetOverlap = require('subnet-overlap')
// Check if subnet overlaps with existing subnets
subnetOverlap(['172.22.2.0/24'], '172.22.2.0/24') // true
subnetOverlap(['172.22.1.0/24'], '172.22.2.0/24') // false
// Check against multiple existing subnets
subnetOverlap(
['10.0.0.0/24', '172.16.0.0/24', '192.168.0.0/24'],
'172.16.0.128/25'
) // true
import subnetOverlap from 'subnet-overlap'
const hasOverlap: boolean = subnetOverlap(['10.0.0.0/16'], '10.0.1.0/24')
<!-- unpkg -->
<script src="https://unpkg.com/subnet-overlap@latest/dist/browser/subnetOverlap.min.js"></script>
<!-- jsdelivr -->
<script src="https://cdn.jsdelivr.net/npm/subnet-overlap@latest/dist/browser/subnetOverlap.min.js"></script>
<script>
console.log(subnetOverlap(['172.22.2.0/24'], '172.22.2.0/24')) // true
console.log(subnetOverlap(['172.22.1.0/24'], '172.22.2.0/24')) // false
</script>
Returns true if nowCidr overlaps with any subnet in existedCidrs, false otherwise.
Array<string> - Array of existing subnet CIDR notationsstring - The subnet CIDR notation to checkboolean - true if there is an overlap, false otherwise
TypeError - If existedCidrs is not an array or nowCidr is not a stringFull API documentation is available at GitHub Pages.
# Install dependencies
npm install
# Build TypeScript
npm run build
# Build browser bundle
npm run build:browser
# Run tests
npm test
# Run tests with coverage
npm run coverage
# Run ESLint
npm run lint
# Generate documentation
npm run typedoc
MIT © SangHakLee