Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^2: AnyEvent::DNS is effectively synchronous?

by jc (Acolyte)
on Oct 05, 2010 at 12:51 UTC ( [id://863587]=note: print w/replies, xml ) Need Help??


in reply to Re: AnyEvent::DNS is effectively synchronous?
in thread Async DNS with LWP

Thanks, in the meantime I'd realised that myself. Just in case it's useful to anybody else I include my code so far for asynchronous resolution. As far as I can see from the documentation retrieving records from the results should be as simple as traversing an array of arrays and picking out the bits you want. e.g. A or AAAA records.
#!/usr/bin/perl -w use strict; use warnings; use Data::Dumper; use AnyEvent::DNS; my ($domain,$START_TIME,$MAX_QUERIES,$MAX_QUEUE, $time,$done,$resolved); my (@domains,@condvars); $START_TIME = time; $MAX_QUERIES = 1000; $MAX_QUEUE = 10; $resolved = 0; # setup resolver my $resolver = AnyEvent::DNS::resolver; $resolver->max_outstanding($MAX_QUEUE); #$resolver->timeout([0,1,2]); while (1) { # send dns packets for my $i (1..$MAX_QUERIES) { $domain = <>; # clean off newline chomp $domain; $resolver->resolve($domain,"*",my $condvar = AnyEvent->condvar); push @condvars, $condvar; } # receive dns packets while (my $condvar = pop @condvars) { $resolved++ if ($condvar->recv); #warn Dumper [$condvar->recv]; } $done += $MAX_QUERIES; $time = time - $START_TIME; print "Done $done domains, $resolved resolved in $time seconds.\n"; }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://863587]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2024-04-18 08:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found