私のLinksysのルータはコンピュータ(PCとMacとLinux)に固定ローカルIPを割り当てていないので、私は毎分コンピュータが互いに更新するようにスクリプトを書いています。192.168.1.102のようなローカルIPアドレスを報告するプログラムの作成方法は?
各マシン上の http://localhost/list.htmlは、すべてのPCやMacとそのApacheサーバへのリンク(http://192.168.1.102を指し、など)
は、それがローカルIPアドレスを見つけるための方法のように見えるの名前のリストが含まれますPCではipconfig、MacとLinuxではifconfigであり、プログラムで実行するにはgethostbyname()を使用します。
しかし、私は、Rubyにしようとした、
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
とIPCONFIGが実際に
IPv4 Address. . . . . . . . . . . : 192.168.1.103
を示していることので、これはそれを行うには正しい方法は何ですか?私はRubyで "ipconfig"を実行することでそれをハックし、結果を得るために正規表現を使用しますが、より標準的な方法でそれを行うのがいいでしょう。
あなたが使用してJavaでこれを行うことができます
私のnetgearルータは、各コンピュータに固定ローカルIPを割り当てることができます...しかし、私は、より信頼性の高いlinksysルータを見つけました。私の友人は、無線LANのd-linkルーターは高速で信頼性が高く、固定ローカルIPも割り当てることができます。多分私は信頼性のための速度とDSLインターネットのためのケーブルインターネットを使用し、別のルータを購入する場合は、それを検討します。 –
Bonjourでは、ローカルIPを固定する必要はありません。ホストは、マルチキャストDNSを使用してIPアドレスを相互に通知します。 – sigjuice
Bonjourはホームネットワークに最適です。制限やブロッキングのために企業ネットワーク上ではあまり良くありません。 – Joshua