Трансляция имени хоста и IP-адреса - PullRequest
1 голос
/ 02 апреля 2009

Чтобы уведомить все компьютеры в пределах одной ЛВС о моем существовании, я хочу передать свое имя хоста и IP-адрес.

Как мне поступить так, не отправляя их в виде строки?

Ответы [ 3 ]

3 голосов
/ 29 мая 2009

Avik, это то, для чего предназначен DNS. В то время как «обычный» DNS предназначен для хранения имен и IP-адресов для каждого компьютера (статически настроенный), существует динамический протокол DNS, который позволяет машинам обновлять свои записи DNS в режиме реального времени.

Этот тип возможностей используется в некоторых офисных средах для моих клиентов, где принтеры на машине совместно используются, но машины, к которым они подключены, используют DHCP (что означает, что их IP-адрес может измениться).

См. здесь и здесь для получения подробной информации и реализации Windows с DHCP.

Позволяет называть вашу машину, которая хочет объявить себя СЕРВЕРОМ, и все машины, которые могут ее использовать, КЛИЕНТАМИ.

Конечно, динамический DNS только уведомляет сам DNS о сопоставлении имени / IP-адреса и полезен, если КЛИЕНТЫ уже знают о вашем СЕРВЕРЕ, чтобы они могли получить IP-адрес от DNS. Если у КЛИЕНТОВ нет возможности обнаружить, что ваш СЕРВЕР только что добавлен, вам все равно потребуется время от времени передавать пакет, указывающий, что ваш СЕРВЕР существует (для этого потребуется только имя СЕРВЕРА, поскольку КЛИЕНТЫ будут использовать DNS для получения IP-адреса). ).

Этот широковещательный пакет должен быть собран всеми КЛИЕНТАМИ и храниться в локальной таблице. Если связь между КЛИЕНТОМ и вашим СЕРВЕРОМ завершается неудачно, запись локальной таблицы для вашего СЕРВЕРА должна быть удалена (она будет добавлена ​​заново, когда ваш СЕРВЕР снова начнет вещание).

1 голос
/ 12 мая 2010

Вы можете попробовать использовать UPnP Discovery .

1 голос
/ 12 мая 2010

В основном переизобретая NetBIOS или ZeroConf , популярный среди небольших встроенных устройств для обнаружения установщиком или установщиком на основе Windows или OS X.

...