blob: 4b1d34ebbb4d905331adfb4f2d1cd649dc6e4fbd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
require 'ipaddr'
Puppet::Functions.create_function(:'dns_record::rev_record') do
dispatch :rev_record do
param 'Stdlib::IP::Address::V6::Nosubnet', :ip
param 'Stdlib::IP::Address::V6::Nosubnet', :netmask
return_type 'Tuple[String,2]'
end
def rev_record(ip, netmask)
cidr = IPAddr.new("::/#{netmask}").prefix
addr = IPAddr.new ip
parts = addr.ip6_arpa.split('.')
[ parts.take(cidr/4).join('.'),
parts.drop(cidr/4).join('.') ]
end
end
|