, поскольку мой маршрутизатор Linksys не назначает фиксированный локальный IP-адрес компьютерам (ПК, Mac и Linux), я хотел бы написать скрипт, чтобы каждую минуту компьютеры обновлялись друг для друга, чтобы
http://localhost/list.html
на каждой машине будет содержать список имен всех ПК и Mac и ссылку на их сервер Apache (указывает на http://192.168.1.102, и т. Д.)
похоже, что способ узнать локальный IP-адрес с помощью ipconfig на ПК и ifconfig на Mac и Linux, и сделать это программно, это будет 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
так это правильный способ сделать это? Я могу взломать его, выполнив «ipconfig» в Ruby и используя регулярное выражение для получения результата, но было бы неплохо сделать это более стандартным способом.