Changeset 864


Ignore:
Timestamp:
12/15/11 18:25:28 (13 years ago)
Author:
nanardon
Message:
  • handle ip6 in reverse
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/lib/LATMOS/Accounts/BuildNet.pm

    r863 r864  
    1313use File::Path; 
    1414use File::Temp qw(tempfile); 
     15use Net::IPv4Addr; 
     16use Net::IPv6Addr; 
    1517 
    1618sub _base { 
     
    470472                ? '; ' . $desc . "\n" 
    471473                : ''; 
    472             my @ippart = split(/\./, $res->{value}); 
    473             splice(@ippart, 0, $mask/8); # get rid of start of ip 
    474             my @nippart; 
    475             while (@ippart) { unshift(@nippart, shift(@ippart)) } 
    476             $dbzone .= sprintf("%-12s IN    PTR    %s%s\n", join('.', @nippart), 
     474            my $revip; 
     475            my $fmt; 
     476            if ($res->{value} =~ /:/) { 
     477                # IPv6 
     478                my $m = $mask/4; 
     479                $revip = Net::IPv6Addr->new($res->{value})->to_string_ip6_int; 
     480                $revip =~ s/\.([0-9,a-f]\.?){$m}\.IP6\.INT\.$//i; 
     481                $fmt = "%-72s IN    PTR    %s%s\n"; 
     482            } else { 
     483                # ipv4 
     484                my @ippart = split(/\./, $res->{value}); 
     485                splice(@ippart, 0, $mask/8); # get rid of start of ip 
     486                my @nippart; 
     487                while (@ippart) { unshift(@nippart, shift(@ippart)) } 
     488                $revip = join('.', @nippart); 
     489                $fmt = "%-12s IN    PTR    %s%s\n"; 
     490            } 
     491            $dbzone .= sprintf($fmt, $revip, 
    477492                $reverse  
    478493                    ? ($reverse, '.') 
Note: See TracChangeset for help on using the changeset viewer.