Mickey_from_nsk
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Оба эти способа не совсем тривиальные, но и высшим пилотажем их не назовешь. Это делается так. 1 способ - через Broadcast. Серверный комп сидит на сети и слушает все в свой порт. Клиентский комп знает только порт сервера (он находится в той же сети или на маршрутизаторе поднят relay для broadcast). Клиентский порт посылает (видимо по UDP) сообщение на broadcast адрес для своей сети. Если не ошибаюсь, Broadcast адрес для сети является адрес со всеми единицами в части не закрываемой маской. Например, для сети 192.168.1.0 с маской 255.255.255.0 является адрес 192.168.1.255. Если сервер слушает, ему придет пакет с заполненным полем from. В ответ, по этому полю он может отправить уже направленный пакет обратно. Клиент его получит и в поле from будет написано кто же сервер. 2. способ - через динамический DNS, поднимаемый в Active Directory. Так делают все продвинутыве виндовые тулзы. Только я не знаю, есть ли для него API. Просто регистрируешь свой сервер в этом DNS, например как myserv.mycompany.com. Затем клиент, зная DNS имя сервера (как службы) делает DNS запрос и получает IP для компа. |