|
|
 | Parallel DNS lookup Fra : Lars Kim Lund |
Dato : 01-02-03 18:45 |
|
Davs.
Jeg har lavet et script der checker IP-adresser mod RBL databaser, men
hastigheden er ikke imponerende. Jeg kunne godt tænke mig at
parallellisere det, jeg har læst lidt om det, men ehm .. nu er jeg jo
ikke den helt store programmør, så jeg vil gerne have lidt hjælp til
at komme i gang.
Jeg har vedlagt de to subs. Det kaldes med rblcheck(IP-adresse). Jeg
bruger net::dns, http://www.net-dns.org.
sub rblcheck {
my ($rblhost) = @_;
my $result;
my $res;
my @servers = ("blackholes.wirehub.net",
"dynablock.wirehub.net",
"list.dsbl.org",
"relays.ordb.org",
"bl.spamcop.net",
"sbl.spamhaus.org",
"relays.osirusoft.com",
"opm.blitzed.org",
"ng.countries.nerd.dk",
"tw.countries.nerd.dk",
"kp.countries.nerd.dk",
"cn.countries.nerd.dk");
my @rblhost = split (/\./, $rblhost);
my $rblhost = join(".", @rblhost[3,2,1,0]);
foreach my $i (@servers) {
if (dnslookup("$rblhost.$i")) {
$result .= "$i ";
$res++;
}
}
return ($result, $res);
}
sub dnslookup {
my ($lookup) = @_;
my $res = Net::DNS::Resolver->new;
my $query = $res->search("$lookup");
if ($query) {
foreach my $rr ($query->answer) {
next unless $rr->type eq "A";
return $rr->address;
}
}
}
--
Lars Kim Lund
http://www.net-faq.dk/
| |
Lars Kim Lund (03-02-2003)
 | Kommentar Fra : Lars Kim Lund |
Dato : 03-02-03 22:19 |
|
Lars Kim Lund <lkl@fabel.dk> wrote:
>Jeg har lavet et script der checker IP-adresser mod RBL databaser, men
>hastigheden er ikke imponerende. Jeg kunne godt tænke mig at
>parallellisere det, jeg har læst lidt om det, men ehm .. nu er jeg jo
>ikke den helt store programmør, så jeg vil gerne have lidt hjælp til
>at komme i gang.
>
>Jeg har vedlagt de to subs. Det kaldes med rblcheck(IP-adresse). Jeg
>bruger net::dns, http://www.net-dns.org.
Ingen? - Jeg tænkte på om man ikke kunne lave noget med fork() - som
jo er understøttet på win32 (yeah) nu. Jeg har læst perldocs og nogle
af eksemplerne men, men, men .. jeg kan ikke gennemskue eksemplerne og
når jeg ændrer på dem opfører de sig ikke som jeg forventer.
Jeg ønsker at lave noget der starter x antal tråde med y timeout der
kalder en subrutine og venter på svar. Således at der er i det
konkrete tilfælde er x parallelle nslookups i gang hele tiden.
Jeg har i første omgang brug for noget hjælp til at lave selve
kontrolstrukturen der starter nye processer og venter på svar. Hjælp?
--
Lars Kim Lund
http://www.net-faq.dk/
| |
Kaare Rasmussen (04-02-2003)
 | Kommentar Fra : Kaare Rasmussen |
Dato : 04-02-03 11:12 |
|
> Ingen? - Jeg tænkte på om man ikke kunne lave noget med fork() - som
Har du set på POE: http://poe.perl.org/ ?
I POE Cookbook er der f.eks. et eksempel på at opløse et stort antal
DNS-forespørgsler i parallel: http://poe.perl.org/?POE_Cookbook/DNS_Lookups
Måske kan det bruges.
--
Kaare Rasmussen --Linux, spil,-- Tlf: 3816 2582
Kaki Data tshirts, merchandize Fax: 3816 2501
Howitzvej 75 Åben 12.00-18.00 Web: www.suse.dk
2000 Frederiksberg Lørdag 11.00-17.00 Email:kar@kakidata.dk
| |
 Lars Kim Lund (04-02-2003)
 | Kommentar Fra : Lars Kim Lund |
Dato : 04-02-03 22:28 |
|
Kaare Rasmussen <kar@kakidata.dk> wrote:
>I POE Cookbook er der f.eks. et eksempel på at opløse et stort antal
>DNS-forespørgsler i parallel: http://poe.perl.org/?POE_Cookbook/DNS_Lookups
>
>Måske kan det bruges.
Jeg har ikke prøvet endnu, men det ser ud til at kunne netop det jeg
søger. Mange tak.
--
Lars Kim Lund
http://www.net-faq.dk/
| |
Ask Bjoern Hansen (06-02-2003)
 | Kommentar Fra : Ask Bjoern Hansen |
Dato : 06-02-03 01:55 |
|
Lars Kim Lund <lkl@fabel.dk> wrote in message news:<ih1o3v4d2po738au5pbqk77r0dkqcarhoe@sunsite.auc.dk>...
> Davs.
>
> Jeg har lavet et script der checker IP-adresser mod RBL databaser, men
> hastigheden er ikke imponerende. Jeg kunne godt tænke mig at
> parallellisere det, jeg har læst lidt om det, men ehm .. nu er jeg jo
> ikke den helt store programmør, så jeg vil gerne have lidt hjælp til
> at komme i gang.
>
> Jeg har vedlagt de to subs. Det kaldes med rblcheck(IP-adresse). Jeg
> bruger net::dns, http://www.net-dns.org.
Kig efter "bgsend" i Net::DNS dokumentationen.
Eller kig paa "dnsbl" plugin'et til qpsmtpd[1], den starter opslagene
i baggrunden naar klienten connecter saa de (forhaabenligt) er klar
naar der er brug for dem: http://xrl.us/bsv
- ask
[1] http://develooper.com/code/qpsmtpd/
| |
Lars Kim Lund (06-02-2003)
 | Kommentar Fra : Lars Kim Lund |
Dato : 06-02-03 23:34 |
|
ask@develooper.com (Ask Bjoern Hansen) wrote:
>> Jeg har vedlagt de to subs. Det kaldes med rblcheck(IP-adresse). Jeg
>> bruger net::dns, http://www.net-dns.org.
>
>Kig efter "bgsend" i Net::DNS dokumentationen.
Jo, jeg havde set den i perldocs - uden at jeg helt forstod hvordan
jeg skulle køre det parallelt. Men der er et demo-script der viser
det, så det skal jeg lige have analyseret.
Tak.
--
Lars Kim Lund
http://www.net-faq.dk/
| |
|
|