require 'facter' require 'ipaddr' Facter.add('revzone') do confine { Facter.value(:ipaddress6) } setcode do ip = Facter.value(:ipaddress6) cidr = IPAddr.new("::/#{Facter.value(:netmask6)}").prefix addr = IPAddr.new ip parts = addr.ip6_arpa.split('.') parts.drop(cidr/4).join('.') end end