|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Yuri A. Wolf 2:5020/400 08 Jan 2002 10:12:09 To : Anton Petrusevich Subject : Re: Net::DNS? -------------------------------------------------------------------------------- Anton Petrusevich пишет в сообщении <2179078889@f16.n5004.z2.fidonet.ftn> ... :Pavel V. Reich <Pavel_V._Reich@f75.n5004.z2.fidonet.org> wrote: :> Требуется определить полное имя mail-сервера определенного домена. То :> есть, как я вижу - требуется узнать MX по имени домена. Как? имхо :> что-то наподобие сабжа мне поможет. Заранее благодарен. : :Примерно так: : :use Net::DNS::Resolver; :use Net::DNS::RR; :sub get_mx :{ : my $addr=shift; : $addr =~ s/[<>]//g; : split /\@/, $addr; : my $domain=$_[1]; : my $Resolver=new Net::DNS::Resolver; : my $pck=$Resolver->search($domain,"MX"); : if( !defined $pck ) { : my_log("undefined answer packet for $domain"); : return undef; : } : my @answ; : foreach($pck->answer){ : push @answ,$_ if $_->type eq "MX"; : } : if(scalar @answ == 0) { : my_log("bad answer for $domain"); : return undef; : } : my @mx=sort { $a->preference <=> $b->preference } @answ; : return $mx[0]->exchange; :} : Вах! А кстати если вот так сделать: use Net::DNS; my $res = new Net::DNS::Resolver; my @mx = mx($res, $domain); my @exchanges = (); foreach my $rr (@mx) { push(@exchanges, $rr->exchange); } мы не то же самое получим?? или это медленнее? -- Юра --- ifmail v.2.15dev5 * Origin: OVK-Trade (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6459cb314bec.html, оценка из 5, голосов 10
|