Da mein Linksys Router den Computern (PC und Mac und Linux) keine feste lokale IP zuweist, möchte ich ein Skript schreiben, so dass die Computer jede Minute aktualisiert werden, so dassWie schreibe ich ein Programm zum Melden der lokalen IP-Adresse wie 192.168.1.102?
auf jedem Rechner eine Liste der Namen aller PC und Mac und einen Link zu ihrem apache-Server (zeigt auf http://192.168.1.102, usw.) enthalten
es wie eine Art und Weise sieht Adresse die lokale IP, um herauszufinden, ist von ipconfig auf dem PC, und ifconfig auf dem Mac und Linux, und es programmgesteuert zu tun, wird es gethostbyname() sein.
Aber ich versuchte, auf Rubin, dass
irb(main):001:0> require 'socket'
=> true
irb(main):002:0> p Socket::gethostbyname("localhost")
["Core2Duo", [], 2, "\177\000\000\001"]
irb(main):005:0> p Socket::gethostbyname("core2duo")
["Core2Duo", [], 2, "\300\250\001g"]
=> nil
und ipconfig zeigt tatsächlich
IPv4 Address. . . . . . . . . . . : 192.168.1.103
so ist dies der richtige Weg, es zu tun? Ich kann es hacken, indem ich "ipconfig" in Ruby ausführe und reguläre Ausdrücke verwende, um das Ergebnis zu erhalten, aber es wäre schön, es mit einer Standardmethode zu machen.
mein Netgear Router könnte jedem Computer eine feste lokale IP zuweisen ... aber ich fand den Linksys Router zuverlässiger. mein freund hat mir gesagt, dass sein d-link router mit wireless-n schnell und zuverlässig ist und auch feste lokale IP zuweisen kann. vielleicht werde ich darüber nachdenken, wenn ich Kabel-Internet für die Geschwindigkeit und dann DSL-Internet für Zuverlässigkeit verwende und einen anderen Router kaufe. –
Mit Bonjour müssen Sie keine festen lokalen IPs haben. Die Hosts teilen sich ihre IP-Adressen mithilfe von Multicast-DNS mit. – sigjuice
Bonjour ist ideal für Heimnetzwerke. Nicht so gut in Unternehmensnetzwerken aufgrund von Einschränkungen und Blockierung. – Joshua