1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use IO::Async::Loop;
7use IO::Async::Resolver::DNS;
8
9my $loop = IO::Async::Loop->new;
10my $resolver = $loop->resolver;
11
12$resolver->res_query(
13   dname => $ARGV[0],
14   type  => "MX",
15)->on_done( sub {
16   my ( $pkt, @mxes ) = @_;
17
18   foreach my $mx ( @mxes ) {
19      printf "preference=%d exchange=%s\n",
20         $mx->{preference}, $mx->{exchange};
21      if( my $addresses = $mx->{address} ) {
22         printf "  address=%s\n", $_ for @$addresses;
23      }
24      else {
25         print "  address unknown\n";
26      }
27   }
28})->get;
29