#! /usr/bin/env perl use warnings; use strict; sub getIncludes { my $indent = shift; my $return = ''; foreach my $domain ( @_ ) { $return .= ' 'x$indent . "$domain\n"; my @lines = `dig $domain TXT | grep spf`; chomp @lines; foreach my $entry ( @lines ) { while ( $entry =~ m/include:([_a-zA-Z0-9\-\.]+)/g ) { $return .= &getIncludes( $indent+3, $1 ); } # while } # foreach } # foreach return $return; } # sub while ( my $domain = shift ) { print &getIncludes( 0, $domain ); } 1;