2013-04-09 12 views
5

AniW Ruby, jak odwrócić dns wyszukać nazwę komputera zeroconf/bonjour?

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

ani

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

wydają się rozpoznawać hosty w podsieci lokalnej, które wykorzystują zeroconf/Bonjour. Muszę znaleźć nazwę komputera zerokonf w lokalnej podsieci, podając jej adres IP.

+0

może coś takiego: 'h_n = Socket.getaddrinfo ('10 .0.1.18' , nil)' może działać. Nazwa hosta powinna znajdować się w: 'h_n [0] [2]' – fmendez

+0

Po prostu zwraca '10 .0.1.18 'jako nazwę hosta ... [["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

Odpowiedz

1

funkcja Ci mówić regularne TCP i DNS, chciałbym założyć, trzeba użyć bonjour API, takich jak http://dnssd.rubyforge.org/

+0

Nie wiem, jak uzyskać dnssd do wyszukiwania nazw. Wypróbowałem gem net-mdns, używając Resolv :: MDNS.getname ('10 .0.1.18 '), który wygląda na to, że powinien działać, zwraca, że ​​nie może znaleźć nazwy dla adresu. BTW, mogę pingować adres IP i lokalną nazwę "fred.local" – Uilleann