2013-04-09 65 views
5

無論在Ruby中,如何反轉dns查找zeroconf/bonjour計算機的主機名?

Resolv.getname("fred.local") 
Resolv.getaddress("10.0.1.18") 

也不

Socket.gethostbyaddr([10,0,1,18].pack("CCCC")) 

似乎認識到在其上使用的零配置/卓悅本地子網中的主機。我需要在給定ip地址的本地子網上找到一個zeroconf計算機的主機名。

+0

也許是這樣的:'h_n = Socket.getaddrinfo('10 .0.1.18' ,零)'可能會奏效。主機名應該位於:'h_n [0] [2]' – fmendez 2013-04-09 15:38:11

+0

只需返回'10 .0.1.18'作爲主機名... [[「AF_INET」,0,「10.0.1.18」,「10.0.1.18」, 2,2,17],[「AF_INET」,0,「10.0.1.18」,「10.0.1.18」,2,1,6]] – Uilleann 2013-04-09 15:46:57

回答

1

這些功能說話經常TCP和DNS,我會假設你需要使用一個卓悅API,如http://dnssd.rubyforge.org/

+0

沒有弄清楚如何讓dnssd執行名稱查找。使用Resolv :: MDNS.getname('10 .0.1.18')嘗試了net-mdns gem,它似乎應該起作用,返回它無法找到該地址的名稱。順便說一句,我可以ping通IP地址,本地名稱'fred.local' – Uilleann 2013-04-12 02:12:32

相關問題