/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
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/

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste