Эти вопросы являются новой попыткой решить предыдущий вопрос «Как получить список всех действительных IP-адресов в локальной сети, используя Javascript?» (увидеть Как получить список всех действительных IP-адресов в локальной сети, используя Javascript? )
Чтобы избежать необходимости проверять миллионы адресов, я хотел бы знать, возможно ли это по следующему сценарию (в этом случае забудьте об ограничении JavaScriipt исходного сообщения и предположите более общий язык, например C ++ и библиотеку ввода-вывода как Boost Asio)
a) Включение сервера «S» в локальной сети для предоставления некоторой услуги, например прослушивания в порту X, и получения случайного адреса (т.е. A1 = 192.168.1.35).
b) Клиент «C», которому требуется услуга, активируется в той же локальной сети, получает другой случайный адрес (скажем, A2 = 192.168.1.40).
«C» не знает адрес «S» для получения услуги. Итак, два вопроса:
1.- Могут ли «S» и «C» сами знать свои адреса (А1 и А2)?
2.- Может ли «C» отправить широковещательный запрос в локальную сеть через заданный порт X? Некоторые как «Здесь P2, некоторые в X?»
Очевидно, что если «S» прослушивает данный порт и может получить сообщение, они, в свою очередь, могут передавать свое собственное направление; так что, если «С» слушает, можно получить адрес сервера.
Относительно моего первого вопроса, после некоторого копания, ответ да.
Увидеть «Часто задаваемые вопросы о Winsock Programer».
Если в Windows, как в моем случае для сервера, есть полный API с именем «IP Helper» http://msdn.microsoft.com/en-us/library/aa366073%28VS.85%29.aspx это может служить также.
Что касается второго вопроса, я попробую разоблачить быстрый и грязный метод и надеюсь вернуться с некоторым результатом.