Re[9]: Как странице в браузере найти сервер в локальной сети
От: Vetal_ca Канада http://vetal.ca
Дата: 07.04.21 16:51
Оценка: +1
Здравствуйте, bnk, Вы писали:

bnk>Тут же штука именно в том, чтобы не просить НИЧЕГО от пользователя (если пользователь "дает внутренний IP" то задача теряет смысл, потому как весь огород стотся ради этого), все должно происходить в полностью автоматическом режиме, насколько я понимаю.


Я это прекрасно понимаю. Расписано чтобы TC структурировал проблему/задачу в голове и продумывал пути решения оной.

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

Видя разные варианты можно продумать пути инсталляции и сложность реализации, решив задачу наименее затратным способом
Re[10]: Как странице в браузере найти сервер в локальной сети
От: Basil2 Россия https://starostin.msk.ru
Дата: 07.04.21 19:03
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Только по виду это чертова куча работы. Вариант со сканированием бар-кода телефоном с экрана компьютера выглядит на порядок менее трудозатратным, imho.


Это да, но он увы не решает главную проблему — как установить TLS (wss) соединение между сервером в локалке и сотовиком. Я так понимаю, на локальный сервер нельзя получить сертификат, а значит прощай WSS.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re[11]: Как странице в браузере найти сервер в локальной сет
От: bnk СССР http://unmanagedvisio.com/
Дата: 07.04.21 20:06
Оценка: 86 (3) +1
Здравствуйте, Basil2, Вы писали:

B>Здравствуйте, bnk, Вы писали:


bnk>>Только по виду это чертова куча работы. Вариант со сканированием бар-кода телефоном с экрана компьютера выглядит на порядок менее трудозатратным, imho.


B>Это да, но он увы не решает главную проблему — как установить TLS (wss) соединение между сервером в локалке и сотовиком. Я так понимаю, на локальный сервер нельзя получить сертификат, а значит прощай WSS.


Почему нельзя? На имя foo12345.mycompony.com сертификат без проблем получается автоматически в letsecrypt, программно. При этом сервер foo12345.mycompony.com может вообще не существовать, достаточно записи в dns.
То есть, резолвиться адрес foo12345.mycompony.com может во что угодно, в том числе и в локальный адрес. Как vsb написал,
— 0. имеем свой dns сервер снаружи для резолва ×××.mycompany.com. можно реальный сервис, можно в виде clodflare dns api (сделать там аккаунт и вызывать апи из виндовой программы для изменения dns записей)

Для каждого клиента программа на винде
— генерирует рандомное имя (домен 3 уровня) 12345.mycompany.com
— получает на него реальный, валидный сертификат lestecrypt через certbot и тот самый dns сервер или cloudfare api
— добавляет в dns сервис (внешний, из пункта 0) запись чтобы 12345.mycompany.com указывало на внутренний адрес компа на котором она запущена, типа 192.168.0.ххх
Слушает этот адрес с этим сертификатом. Программа на телефоне коннектится к 12345.mycompany.com

Альтернативно, вроде бы можно плучить 1 wildcard сатификат и слушать с ним. Такой сертификат покупается один раз например, не надо думать об обновлении. Но тебе придется его поставлять вместе с твоей софтиной.

Программа на винде:
— генерирует рандомное имя 12345.mycompany.com
— добавляет в dns сервис (внешний, из пункта 0) запись чтобы 12345.mycompany.com указывало на внутренний адрес компа на котором она запущена, типа 192.168.0.ххх
— слушает не локалхосте с сертификатом *.mycompany.com
Клиет (телефон) коннектится на 12345.mycompany.com
Отредактировано 07.04.2021 20:55 bnk . Предыдущая версия . Еще …
Отредактировано 07.04.2021 20:50 bnk . Предыдущая версия .
Отредактировано 07.04.2021 20:47 bnk . Предыдущая версия .
Отредактировано 07.04.2021 20:44 bnk . Предыдущая версия .
Отредактировано 07.04.2021 20:38 bnk . Предыдущая версия .
Отредактировано 07.04.2021 20:38 bnk . Предыдущая версия .
Отредактировано 07.04.2021 20:25 bnk . Предыдущая версия .
Отредактировано 07.04.2021 20:06 bnk . Предыдущая версия .
Re: Как странице в браузере найти сервер в локальной сети?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 08.04.21 00:10
Оценка: 4 (1)
Здравствуйте, Basil2, Вы писали:

B>Браузер не умеет в UDP от слова совсем. Следовательно штатный zeroconf отпадает. Пока на ум приходит только перебирать IP-адреса в цикле, и то если получится из под браузера получить локальный IP.


B>Решение?


Я бы на P2P фрэймворки поглядел, пожалуй. Они обычно в локальной сети работают через mDNS и как DHT для поиска и соединения с другими нодами. Например для https://ipfs.io/ заявлена поддержка JS, может подойдёт?
Re[12]: Как странице в браузере найти сервер в локальной сет
От: Basil2 Россия https://starostin.msk.ru
Дата: 08.04.21 15:20
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Альтернативно, вроде бы можно плучить 1 wildcard сатификат и слушать с ним. Такой сертификат покупается один раз например, не надо думать об обновлении. Но тебе придется его поставлять вместе с твоей софтиной.


bnk>Программа на винде:

bnk>- генерирует рандомное имя 12345.mycompany.com
bnk>- добавляет в dns сервис (внешний, из пункта 0) запись чтобы 12345.mycompany.com указывало на внутренний адрес компа на котором она запущена, типа 192.168.0.ххх
bnk>- слушает не локалхосте с сертификатом *.mycompany.com
bnk>Клиет (телефон) коннектится на 12345.mycompany.com

О, наконец-то я понял как это должно работать! Спасибо за подробное пояснение.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re: Как странице в браузере найти сервер в локальной сети?
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.04.21 14:52
Оценка:
Здравствуйте, Basil2, Вы писали:
B>Решение?
Каким-то образом Яндекс ухитрялся находить колонку с Алисой в локальной сети.
Сейчас попробовал — нет, не видит. Возможно, что-то в браузерах зачинили
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Как странице в браузере найти сервер в локальной сети?
От: ути-пути Россия  
Дата: 10.04.21 07:30
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Каким-то образом Яндекс ухитрялся находить колонку с Алисой в локальной сети.

S>Сейчас попробовал — нет, не видит. Возможно, что-то в браузерах зачинили

Может ей надо сказать что-то, чтобы активность проявила?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Как странице в браузере найти сервер в локальной сети?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 24.04.21 20:35
Оценка:
Здравствуйте, Basil2, Вы писали:

B>Дано:


B>Приложение под Windows (сервер на WebSockets).

B>Веб-страница, открытая в браузере на планшете (WPA).
B>Оба запущены в одной подсети (роутер).

B>Решение?


Роутер обычно вроде же умеет в имена? У меня на роутере все виндовые машины под именами, NAS линупсовый тоже имя имеет. Даже мобилка по вайфаю — и та имя имеет. Сам я ничего не делал. И роутер хоть и гигабитный, но лет 10 уже ему — т.е. это не какие-то новые технологии
Маньяк Робокряк колесит по городу
Re[2]: Как странице в браузере найти сервер в локальной сети?
От: bnk СССР http://unmanagedvisio.com/
Дата: 24.04.21 22:29
Оценка:
Здравствуйте, Marty, Вы писали:

M>Роутер обычно вроде же умеет в имена? У меня на роутере все виндовые машины под именами, NAS линупсовый тоже имя имеет. Даже мобилка по вайфаю — и та имя имеет. Сам я ничего не делал. И роутер хоть и гигабитный, но лет 10 уже ему — т.е. это не какие-то новые технологии


Я думаю можно сформулировать задачу другими словами — автоматически соединить приложение в браузере с "устройством" в локальной сети по HTTPS.
Причем про локальную сеть предварительно ничего не известно, и к ней нет админского доступа (то есть это сеть "пользователя", а не твоя).
Известно только что устройство в той же самой локальной сети, что и компьютер, на котором запущен браузер.

Например, ты заходишь на сайт, и можешь включить свет в комнате с помощью "умного выключателя", нажав на кнопку на этом сайте.
В данном конкретном случае в качестве такого вот локального устройства ("умного выключателя") выступает планшет, но это не принципиально.

Проблема именно в жаваскрипте в браузере, который (пока) не умеет UDP (броадкаст)
UDP — это то, что скорее всего использовал твой NAS например для регистрации себя в сети.
Re[3]: Как странице в браузере найти сервер в локальной сети?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 24.04.21 22:54
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Я думаю можно сформулировать задачу другими словами — автоматически соединить приложение в браузере с "устройством" в локальной сети по HTTPS.


Я посмотрел чуть подробнее — ты похоже, не совсем правильно вопрос сформулировал, не все исходные привел.
Я так понял, что тебе во всех чужих сетках нужно иметь одинаковое для своего софта имя сервера, на который ты хочешь сделать один сертификат для HTTPS.
Это на самом деле сильно всё меняет.


bnk>Проблема именно в жаваскрипте в браузере, который (пока) не умеет UDP (броадкаст)

bnk>UDP — это то, что скорее всего использовал твой NAS например для регистрации себя в сети.

Мой НАС — хз, UDP или нет — там самба для его расшары, и я так думаю, это всё (и винда, и линупс, и даже мобилка) работает через гавно мамонта типа WINS (который умеет и в TCP, вроде). Тут вопрос — можно ли из песочницы узнать адрес шлюза по умолчанию — это в домашней сетке 99.9(9)% и есть роутер, и можно ли из песочницы работать по TCP, а не через вебсокеты.

Хз, можно ли из бравзера или электрона достучаться до этой службы, но как вариант — сделать отдельный нативный сервис, который всю грязную работу делает, и умеет управляться через HTTP. Какой-нибудь REST — описать в yaml'е или подобном, сгенерировать автоматом весь бойлерплейт для нужного языка, и немножко дописать логику. Если винда и не хочется отдельное приложение на таскбаре/трее висело — можно чуть заморочиться, и оформить это в сервис. А из песочницы к нему обращаться через "http://localhost:port"


ЗЫ Не совсем понял, нафига HTTPS? Простой HTTP кто-то не даёт?
Маньяк Робокряк колесит по городу
Re[4]: Как странице в браузере найти сервер в локальной сети
От: bnk СССР http://unmanagedvisio.com/
Дата: 25.04.21 00:08
Оценка:
Здравствуйте, Marty, Вы писали:

M>Я посмотрел чуть подробнее — ты похоже, не совсем правильно вопрос сформулировал, не все исходные привел.

M>Я так понял, что тебе во всех чужих сетках нужно иметь одинаковое для своего софта имя сервера, на который ты хочешь сделать один сертификат для HTTPS.
M>Это на самом деле сильно всё меняет.

Вообще вопрос не мой, я просто объяву разместил (тоже заинтересован в более простом решении чем вот это
Автор: bnk
Дата: 07.04.21
)

M>ЗЫ Не совсем понял, нафига HTTPS? Простой HTTP кто-то не даёт?


PWA не дает, оффлайновая установка на девайс то есть (для него нужен строго https). Выше где-то написано.
Отредактировано 25.04.2021 0:19 bnk . Предыдущая версия . Еще …
Отредактировано 25.04.2021 0:12 bnk . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.