私の Linksys ルーターはコンピューター (PC と Mac と Linux) に固定のローカル IP を割り当てないので、毎分コンピューターが相互に更新されるようにスクリプトを書きたいと思います。
各マシンには、すべての 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」を実行して正規表現を使用して結果を取得することでハッキングできますが、より標準的な方法を使用して行うとよいでしょう。