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  => "SRV",
15)->on_done( sub {
16   my ( $pkt, @srvs ) = @_;
17
18   foreach my $srv ( @srvs ) {
19      printf "priority=%d weight=%d target=%s port=%d\n",
20         @{$srv}{qw( priority weight target port )};
21      if( my $addresses = $srv->{address} ) {
22         printf "  address=%s\n", $_ for @$addresses;
23      }
24      else {
25         print "  address unknown\n";
26      }
27   }
28})->get;
29