blob: c3054f48ff771bb4d58998a36661c2616d08e4a3 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
// Parsing CIDR into Gateway,Netmask Placeholders
export function getNetmaskFromCidr (cidr) {
if (!cidr?.includes('/')) return undefined
const [, maskBits] = cidr.split('/')
const subnetMasks = {
8: '255.0.0.0',
9: '255.128.0.0',
10: '255.192.0.0',
11: '255.224.0.0',
12: '255.240.0.0',
13: '255.248.0.0',
14: '255.252.0.0',
15: '255.254.0.0',
16: '255.255.0.0',
17: '255.255.128.0',
18: '255.255.192.0',
19: '255.255.224.0',
20: '255.255.240.0',
21: '255.255.248.0',
22: '255.255.252.0',
23: '255.255.254.0',
24: '255.255.255.0',
25: '255.255.255.128',
26: '255.255.255.192',
27: '255.255.255.224',
28: '255.255.255.240',
29: '255.255.255.248',
30: '255.255.255.252',
31: '255.255.255.254',
32: '255.255.255.255'
}
return subnetMasks[+maskBits] || '255.255.255.0'
}