TCP как чётко обратится к конкретной машине, когда присутствует DHCP сервер
Делаю программу с использованием TCP/IP. Но надо сделать теперь чтобы работало не только с чёткой IP адресацией, но и когда есть DHCP сервер, который может поменять IP адрес или имя в сети. Может ли кто-то показать пример как писать для такого код?
Ответы (2 шт):
Если компы в одном физическом домене и приложение готово к ipv6, то используй mdns (мультикаст днс): встроенный в ОС(windows10,11,android), bonjour(windows 7,8,macos) или avahi(linux).
Также бывают реализации без использования сервисов укзаных выше, там где библиотека сама создает минимальный сервис обнаружения.
Вариантов много, попробую перечислить.
DHCP не обязательно означает динамические адреса. В большинстве случаев, когда требуется сетевое взаимодействие принято на стороне DHCP настраивать статические IP.
DHCP сервер (роутер), выдавая адреса может выполнять роль DNS-сервера, запоминая имена машин и отвечая на DNS-запросы.
Машины, получая динамические IP могут сами регистрироваться на DDNS.
На машинах, участвующих в сетевом взаимодействии можно поднять протоколы сетевого обнаружения - nDNS, Netbios over TCP/IP (NBT), LLMNR, UPnP (SSDP) и др.
Самый простой и не требующий ничего менять - ARP. Если железо в сети не меняется, то можно запоминать его MAC-адрес и искать в таблице ARP, выясняя текущий IP.
Использовать IPv6. Адреса, которые компьютеры сами себе для локалки присваивают практически никогда не меняются.