[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Using resolv to get the mailhost

Daniel Berger

9/28/2006 5:04:00 PM

Hi,

I'm trying to figure out a way to get the mailhost using the 'resolv'
library, but I'm having trouble because it isn't documented. What's a
good analogue of this Perl script?

use strict;
use Net::DNS;

my $resolv = Net::DNS::Resolver->new();
my $packet = $resolv->search("mailhost");

foreach my $rr ($packet->answer){
$rr->print;
}

# Prints the following (IP addresses changed to protect the guilty):

mailhost.foo.com. 900 IN CNAME mailgate.domain.com.
mailgate.domain.com. 900 IN A 1.2.3.4
mailgate.domain.com. 900 IN A 1.2.3.5
mailgate.domain.com. 900 IN A 1.2.3.6
mailgate.domain.com. 900 IN A 1.2.3.7
mailgate.domain.com. 900 IN A 1.2.3.8
mailgate.domain.com. 900 IN A 1.2.3.9

I'd really just like the first name of the first answer, i.e.
"mailhost.foo.com".

Thanks,

Dan

1 Answer

Daniel Berger

9/29/2006 12:37:00 AM

0

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Daniel Berger wrote:
> Hi,
>
> I'm trying to figure out a way to get the mailhost using the 'resolv'
> library, but I'm having trouble because it isn't documented. What's a
> good analogue of this Perl script?
>
> use strict;
> use Net::DNS;
>
> my $resolv = Net::DNS::Resolver->new();
> my $packet = $resolv->search("mailhost");
>
> foreach my $rr ($packet->answer){
> $rr->print;
> }
>
> # Prints the following (IP addresses changed to protect the guilty):
>
> mailhost.foo.com. 900 IN CNAME mailgate.domain.com.
> mailgate.domain.com. 900 IN A 1.2.3.4
> mailgate.domain.com. 900 IN A 1.2.3.5
> mailgate.domain.com. 900 IN A 1.2.3.6
> mailgate.domain.com. 900 IN A 1.2.3.7
> mailgate.domain.com. 900 IN A 1.2.3.8
> mailgate.domain.com. 900 IN A 1.2.3.9
>
> I'd really just like the first name of the first answer, i.e.
> "mailhost.foo.com".

It seems that I needed to put an explicit domain entry for foo.com in my
/etc/resolv.conf file. Once I did that, then
Resolv.getaddress("mailhost") worked.

However, I'm confused as to why "host mailhost" and the Perl code above
worked without it, while the Ruby code required it. Any insight
appreciated.

Regards,

Dan

PS - Solaris 10, btw.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail....

iD8DBQFFHGqK3p/dorzCFX0RAuajAKCXN6zBl+4mkV4gtpKgfb2HtYHywwCglLYc
9bD7X4QYv8uiIYVLeQwguBA=
=lKyF
-----END PGP SIGNATURE-----