Невозможно что-либо сделать с Ruby, чтобы сделать это, потому что это не проблема Ruby. Компьютеры имеют дело с преобразованием имен хостов в IP-адреса двумя различными способами: hosts
файл и запрос DNS.
hosts
файл - это способ указать конкретный c компьютер, о каких адресах он знает. Вы редактируете файл, указываете, какое имя соответствует какому IP-адресу, и когда этот компьютер отправляет запрос на одно из этих имен, он знает, с кем связаться. Поскольку у вас должна быть запись на компьютере клиента , на сервере вы ничего не можете сделать, чтобы повлиять на нее, поэтому нет необходимости возиться с Ruby или WEBrick помогу. Кроме того, в iPhone нет файла hosts
, который можно редактировать.
Когда компьютер не знает имени, он спрашивает кого-то, кто знает. Этот человек - DNS-сервер , своего рода умные Желтые страницы для компьютеров. На вашем компьютере есть DNS-сервер, с которым он настроен для работы; если он не знает, он запросит информацию у других DNS-серверов. Примечательно, что маршрутизатор вашей локальной сети почти наверняка имеет функции DNS.
Таким образом, обычный способ сделать то, что вы хотите, это сообщить вашему маршрутизатору, какой адрес он должен сообщить всем, когда его спросят о awesome.local
. Как это сделать, это не так: c для переполнения стека (так как это не проблема программирования; вы можете задать вопрос SuperUser ), и невозможно ответить, не зная точную марку и модель вашего router.
EDIT: Учитывая, что в вашем примере используется устройство iOS, есть другой ответ:: устройства Apple используют Bonjour , чтобы выкрикивать свои собственные данные конфигурации друг на друга. Это не приложение, это iOS. Вы можете установить Bonjour в большинстве других операционных систем. Также существует гем Ruby, который реализует протокол Bonjour, dnssd . Я не работал с ним, поэтому я не могу сказать вам, решит ли он вашу проблему.