Forum: Ruby the question about getaddinfo

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Qq Z. (Guest)
on 2009-05-14 12:29
I use getaddinfo to get A machine's hostname,
in B machine,the result is correct.
but in A machine,the result is just A machine's name
I use nslookup,the result is also correct.
who can tell me why in A machine,the result is wrong?
Vladimir F. (Guest)
on 2009-05-14 12:50
(Received via mailing list)
Hi,
  approx. 3-5 months ago I had similar problem. The guy who helped tried
to
help mes said that it works for him. Then he realized that he uses a
newes
version of ruby (1.9.something at that time). So my first suggestion
would
be to check (or to write) what version of ruby are you using.
  I solved the problem using external command (host). I hope it helped a
bit.

Cheers,

  V.
Brian C. (Guest)
on 2009-05-14 14:18
Qq Zz wrote:
> I use getaddinfo to get A machine's hostname,
> in B machine,the result is correct.
> but in A machine,the result is just A machine's name
> I use nslookup,the result is also correct.
> who can tell me why in A machine,the result is wrong?

You don't even say what platform you're on. If you're on a Unix-like
platform, then maybe you have something like

1.2.3.4  machineA  machineA.com

in /etc/hosts.
Bill K. (Guest)
on 2009-05-14 14:21
(Received via mailing list)
From: "Qq Zz" <removed_email_address@domain.invalid>
>
> I use getaddinfo to get A machine's hostname,
> in B machine,the result is correct.
> but in A machine,the result is just A machine's name
> I use nslookup,the result is also correct.
> who can tell me why in A machine,the result is wrong?

I ran into something similar awhile back:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/...

This is what I now use:

  ip = "208.77.188.166"
  result = Socket.getnameinfo( Socket.pack_sockaddr_in(0, ip) )
  hostname = result ? result.first : ip


Hope this helps,

Bill
Qq Z. (Guest)
on 2009-05-14 14:46
Brian C. wrote:
> Qq Zz wrote:
>> I use getaddinfo to get A machine's hostname,
>> in B machine,the result is correct.
>> but in A machine,the result is just A machine's name
>> I use nslookup,the result is also correct.
>> who can tell me why in A machine,the result is wrong?
>
> You don't even say what platform you're on. If you're on a Unix-like
> platform, then maybe you have something like
>
> 1.2.3.4  machineA  machineA.com
>
> in /etc/hosts.

no,windows vista
Qq Z. (Guest)
on 2009-05-14 14:49
Bill K. wrote:
> From: "Qq Zz" <removed_email_address@domain.invalid>
>>
>> I use getaddinfo to get A machine's hostname,
>> in B machine,the result is correct.
>> but in A machine,the result is just A machine's name
>> I use nslookup,the result is also correct.
>> who can tell me why in A machine,the result is wrong?
>
> I ran into something similar awhile back:
> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/...
>
> This is what I now use:
>
>   ip = "208.77.188.166"
>   result = Socket.getnameinfo( Socket.pack_sockaddr_in(0, ip) )
>   hostname = result ? result.first : ip
>
>
> Hope this helps,
>
> Bill

the response is: address family for hostname not supported

oh my god!!!
Bill K. (Guest)
on 2009-05-14 16:49
(Received via mailing list)
From: "Qq Zz" <removed_email_address@domain.invalid>
>
> the response is: address family for hostname not supported

Hmm.  I too get that error on Windows:

ruby -v -rsocket -e "p Socket.getnameinfo(Socket.pack_sockaddr_in(0,
'208.77.188.166'))"
ruby 1.8.4 (2005-12-24) [i386-mswin32]
-e:1:in `getnameinfo': getnameinfo: address family for hostname not
supported. (SocketError)
        from -e:1

ruby19 -v -rsocket -e "p Socket.getnameinfo(Socket.pack_sockaddr_in(0,
'208.77.188.166'))"
ruby 1.9.1p129 (2009-05-12) [i386-mswin32_71]
-e:1:in `getnameinfo': getnameinfo: The requested name is valid and was
found in the database,
but it does not have the correct associated data being resolved for.
(SocketError)
        from -e:1:in `<main>'


However it works on Linux:

ruby -v -rsocket -e "p Socket.getnameinfo(Socket.pack_sockaddr_in(0,
'208.77.188.166'))"
ruby 1.8.6 (2008-07-17 patchlevel 279) [x86_64-linux]
["www.example.com", "0"]


Hmm... dunno... :(


Regards,

Bill
Qq Z. (Guest)
on 2009-05-15 08:11
Vladimir F. wrote:
> Hi,
>   approx. 3-5 months ago I had similar problem. The guy who helped tried
> to
> help mes said that it works for him. Then he realized that he uses a
> newes
> version of ruby (1.9.something at that time). So my first suggestion
> would
> be to check (or to write) what version of ruby are you using.
>   I solved the problem using external command (host). I hope it helped a
> bit.
>
> Cheers,
>
>   V.

1.9.1 not work
host? in windows?
This topic is locked and can not be replied to.