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?
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.
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.
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 like1.2.3.4 machineA machineA.com
in /etc/hosts.
no,windows vista
From: “Qq Zz” [email protected]
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
Bill K. wrote:
From: “Qq Zz” [email protected]
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/13805This is what I now use:
ip = “208.77.188.166”
result = Socket.getnameinfo( Socket.pack_sockaddr_in(0, ip) )
hostname = result ? result.first : ipHope this helps,
Bill
the response is: address family for hostname not supported
oh my god!!!
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?
From: “Qq Zz” [email protected]
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
’
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