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