#!/usr/bin/perl
use warnings;
use strict;

use Net::DNS;
use Time::HiRes qw(time);

my $res   = Net::DNS::Resolver->new;

$| = 1;
for my $a (@ARGV) {
    my $t0 = time;
    my $mark = "MTA=unknown $a";
    for (my @dq = split(/\./, $a);@dq; pop(@dq)) {
	my $mm = "_send._smtp._srv." . join(".", reverse(@dq)) . ".in-addr.arpa.";
	print STDERR "q: $mm\n";
	my $pkt = $res->query($mm, 'TXT');
	next unless $pkt;

	my @rr = $pkt->answer();
	next unless @rr;

	next unless $rr[0]->type eq 'TXT';

	if ($rr[0]->txtdata eq "1") {
	    $mark = "MTA=yes $a $mm";
	} else {
	    $mark = "MTA=no $a $mm";
	}
	last;
    }
    my $t1 = time;
    printf "%-30s %8.3f\n", $mark, $t1-$t0;
}

# vim: sw=4


