TCP как чётко обратится к конкретной машине, когда присутствует DHCP сервер

Делаю программу с использованием TCP/IP. Но надо сделать теперь чтобы работало не только с чёткой IP адресацией, но и когда есть DHCP сервер, который может поменять IP адрес или имя в сети. Может ли кто-то показать пример как писать для такого код?


Ответы (2 шт):

Автор решения: eri

Если компы в одном физическом домене и приложение готово к ipv6, то используй mdns (мультикаст днс): встроенный в ОС(windows10,11,android), bonjour(windows 7,8,macos) или avahi(linux).

Также бывают реализации без использования сервисов укзаных выше, там где библиотека сама создает минимальный сервис обнаружения.

→ Ссылка
Автор решения: Solt

Вариантов много, попробую перечислить.

  1. DHCP не обязательно означает динамические адреса. В большинстве случаев, когда требуется сетевое взаимодействие принято на стороне DHCP настраивать статические IP.

  2. DHCP сервер (роутер), выдавая адреса может выполнять роль DNS-сервера, запоминая имена машин и отвечая на DNS-запросы.

  3. Машины, получая динамические IP могут сами регистрироваться на DDNS.

  4. На машинах, участвующих в сетевом взаимодействии можно поднять протоколы сетевого обнаружения - nDNS, Netbios over TCP/IP (NBT), LLMNR, UPnP (SSDP) и др.

  5. Самый простой и не требующий ничего менять - ARP. Если железо в сети не меняется, то можно запоминать его MAC-адрес и искать в таблице ARP, выясняя текущий IP.

  6. Использовать IPv6. Адреса, которые компьютеры сами себе для локалки присваивают практически никогда не меняются.

→ Ссылка