the question about getaddinfo

Q

Qq Zz

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?
 
V

Vladimir Fekete

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.
 
B

Brian Candler

Qq said:
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.
 
B

Bill Kelly

From: "Qq Zz said:
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/ruby-core/13805

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
 
Q

Qq Zz

Brian said:
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
 
B

Bill Kelly

From: "Qq Zz said:
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
 
Q

Qq Zz

Vladimir said:
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?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,173
Messages
2,570,939
Members
47,484
Latest member
JackRichard

Latest Threads

Top