Проверка JavaScript на наличие HTTP-сервера в локальной сети

#javascript #http #network-programming #port

#javascript #http #сетевое программирование #порт

Вопрос:

В настоящее время я работаю над устройством, которое будет подключаться к сети Wi-Fi, а затем размещать HTTP-сервер в локальной сети, к которому вы можете подключиться и настроить устройство. Проблема в том, что единственный способ получить доступ к устройству — это использовать его локальный IP-адрес. Я хотел бы создать программу на JavaScript, которая автоматически проверяла бы каждое устройство в локальной сети и определяла локальный IP-адрес устройства, на котором размещен HTTP-сервер, а затем перенаправляла на него. Есть ли способ сделать это? В соответствии с этим ответом можно определить, открыт ли порт, используя что-то вроде <img src="http://192.168.1.1/favicon.ico" onload="alert('Yay')" onerror="alert('No')"> . Является ли это хорошим способом достижения этой цели, и как бы я применил это для сканирования всей сети? Спасибо

Комментарии:

1. Вы можете сделать это, только если у вас есть известный файл на каждом IP-адресе на http-сервере

2. @mplungjan Но файл должен присутствовать только на устройстве, которое я пытаюсь обнаружить, верно? В противном случае, есть ли лучший способ сделать это?

3. Если вы ищете HTTP-сервер, он всегда будет отвечать на запрос, если он открыт. Но что, если существует 12 HTTP-серверов (или два)? Какой из них правильный?

4. @Рэнди Касберн Есть ли хороший способ определить правильный сервер? Я мало что знаю о HTTP-серверах и JavaScript, но я подумал, что это было бы гораздо более простым решением, чем пытаться установить соединение Bluetooth или что-то в этом роде. Кроме того, каков наилучший способ сканирования всей сети? Используйте цикл for и проверяйте все возможные IP-адреса, соответствующие шлюзу по умолчанию?

5. Где / как настраивается это ваше устройство? DHCP? Арендованный IP-адрес? Будут ли задействованы прокси? В защищенных анклавах автоматически запрещаются устройства автоматического сканирования, подобные вашему, в качестве меры предосторожности? полностью ли неизвестна среда на момент этого автоматического обнаружения? Что произойдет, если ваш HTTP-сервер так и не будет найден? Есть так много вопросов, которые имеют так много других зависимостей. Вы задаете неправильный вопрос. Я думаю, что правильным вопросом было бы «какова текущая наилучшая практика для обеспечения конфигурации сети для автоматизированного устройства без пользовательского интерфейса?»