Стартовая страница при подключении wifi

Автооткрытие страницы при подключении к WiFi

Всех приветствую, накатал небольшой скетч, штрудируя просторы форумов и видеоуроков.
Прошу помощи в доработке, ткнуть носом нужную кучу.. информации.
Скетч создаёт точку доступа и при подключении к ней на андроиде либо автоматом открывается веб-интерфейс, либо всплывает уведомление, нажав на которое — открывается интерфейс.
Так вот, на яблочной мобилке это не работает, может кто знает в чём причина?
Суть кода — перенаправление любого веб запроса на интерфейс, можно в браузере вбить любой адрес (хоть «йух.рф») откроет интерфейс ЕСП. Т.е. андроид при подключении к новой сети пингует что-то и вместо этого перенаправляется на интерфейс ЕСПхи.
Интерфейс можно залить любой через ФТП, главное чтобы назывался index.html (Спасибо за это каналу iomoio)
Логопас от ФТП «login»,»pass»
IP Esp изменён на 192, 168, 10, 1

#include // Библиотека для создания Wi-Fi подключения (клиент или точка доступа) #include // Библиотека для управления устройством по HTTP (например из браузера) #include // Библиотека для работы с файловой системой #include // Библиотека для работы с SPIFFS по FTP #include #include unsigned int status = WL_IDLE_STATUS; const byte DNS_PORT = 53; const char *ssid = "MyWiFi"; IPAddress apIP(192, 168, 10, 1); DNSServer dnsServer; ESP8266WebServer HTTP(80); // Определяем объект и порт сервера для работы с HTTP FtpServer ftpSrv; // Определяем объект для работы с модулем по FTP (для отладки HTML) void setup() < WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0)); WiFi.softAP(ssid); dnsServer.setTTL(300);// Создаём точку доступа dnsServer.setErrorReplyCode(DNSReplyCode::NoError); dnsServer.start(DNS_PORT, "*", apIP); SPIFFS.begin(); // Инициализируем работу с файловой системой HTTP.begin(); // Инициализируем Web-сервер ftpSrv.begin("login","pass"); // Поднимаем FTP-сервер для удобства отладки работы HTML (логин: relay, пароль: relay) delay(500); HTTP.on("/generate_204", handleRoot); HTTP.onNotFound([]()< // Описываем действия при событии "Не найдено" if(!handleFileRead(HTTP.uri())) // Если функция handleFileRead (описана ниже) возвращает значение false в ответ на поиск файла в файловой системе HTTP.send(404, "text/plain", "Not Found"); // возвращаем на запрос текстовое сообщение "File isn't found" с кодом 404 (не найдено) >); > void loop() < if (WiFi.status() == WL_CONNECTED) < MDNS.update();>dnsServer.processNextRequest(); HTTP.handleClient(); // Обработчик HTTP-событий (отлавливает HTTP-запросы к устройству и обрабатывает их в соответствии с выше описанным алгоритмом) ftpSrv.handleFTP(); // Обработчик FTP-соединений > void handleRoot() < HTTP.sendHeader("Cache-Control", "no-cache, no-store, must-revalidate"); HTTP.sendHeader("Pragma", "no-cache"); HTTP.sendHeader("Expires", "-1"); handleFileRead("/"); >bool handleFileRead(String path) < // Функция работы с файловой системой if(path.endsWith("/")) path += "index.html"; // Если устройство вызывается по корневому адресу, то должен вызываться файл index.html (добавляем его в конец адреса) String contentType = getContentType(path); // С помощью функции getContentType (описана ниже) определяем по типу файла (в адресе обращения) какой заголовок необходимо возвращать по его вызову if(SPIFFS.exists(path))< // Если в файловой системе существует файл по адресу обращения Serial.println("settings"); File file = SPIFFS.open(path, "r"); // Открываем файл для чтения size_t sent = HTTP.streamFile(file, contentType); // Выводим содержимое файла по HTTP, указывая заголовок типа содержимого contentType file.close(); // Закрываем файл return true; // Завершаем выполнение функции, возвращая результатом ее исполнения true (истина) >return false; // Завершаем выполнение функции, возвращая результатом ее исполнения false (если не обработалось предыдущее условие) > String getContentType(String filename)< // Функция, возвращающая необходимый заголовок типа содержимого в зависимости от расширения файла if (filename.endsWith(".html")) return "text/html"; // Если файл заканчивается на ".html", то возвращаем заголовок "text/html" и завершаем выполнение функции else if (filename.endsWith(".css")) return "text/css"; // Если файл заканчивается на ".css", то возвращаем заголовок "text/css" и завершаем выполнение функции else if (filename.endsWith(".js")) return "application/javascript"; // Если файл заканчивается на ".js", то возвращаем заголовок "application/javascript" и завершаем выполнение функции else if (filename.endsWith(".png")) return "image/png"; // Если файл заканчивается на ".png", то возвращаем заголовок "image/png" и завершаем выполнение функции else if (filename.endsWith(".jpg")) return "image/jpeg"; // Если файл заканчивается на ".jpg", то возвращаем заголовок "image/jpg" и завершаем выполнение функции else if (filename.endsWith(".gif")) return "image/gif"; // Если файл заканчивается на ".gif", то возвращаем заголовок "image/gif" и завершаем выполнение функции else if (filename.endsWith(".ico")) return "image/x-icon"; // Если файл заканчивается на ".ico", то возвращаем заголовок "image/x-icon" и завершаем выполнение функции return "text/plain"; // Если ни один из типов файла не совпал, то считаем что содержимое файла текстовое, отдаем соответствующий заголовок и завершаем выполнение функции >

Источник

Читайте также:  Ноутбук wifi настройка домашняя сеть

Как найти страницу входа на общедоступном Wi-Fi: лайфхак

Совет, как можно быстро подключиться к незакрытой публичной Wi-Fi-сети.

В зависимости от того, где вы живете, есть множество мест, в которых можно бесплатно подключиться к Wi-Fi, чтобы вы могли работать или учиться удаленно, или избегать ограничения интернет-трафика на вашем смартфоне, установленные сотовым оператором (в случае если ваш мобильный Интернет не безлимитный). К счастью, бесплатный Wi-Fi можно поймать в ресторанах, кафе, вокзалах, аэропортах, магазинах, бизнес-центрах, некоторых торговых комплексах, некоторых парках и т. д. Но есть одна проблема: публичные сети обычно делают процесс подключения довольно раздражающим. Так, например, между вами и беспроводной сетью, как правило, в процессе подключения возникают промежуточные страницы входа, где, прежде чем получить доступ в Интернет, нужно авторизоваться.

Большинство из этих общедоступных сетей Wi-Fi требуют, чтобы пользователи авторизовались с помощью мобильного телефона или электронной почты, соглашаясь с ограничениями использования доступа в Интернет, а также подтверждали свою личность. Часто это утомительный процесс. Но еще хуже, когда эти страницы входа в систему не отображаются автоматически. В итоге, подключившись к какой-нибудь сети, вы не сможете выйти в Интернет, пока не авторизуетесь. Но как быть, если автоматически не появляется форма/страница авторизации публичной Сети?

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

Перезагрузите ваше устройство или сбросьте настройки Wi-Fi

Первое и самое простое – это перезагрузить ваше устройство. Если вы не хотите делать полный перезапуск, вам может помочь простое включение и выключение Wi-Fi на вашем устройстве. После того как вы полностью перезапустили смартфон или планшет (или включили и выключили Wi-Fi), попробуйте снова подключиться к беспроводной сети и открыть какой-нибудь веб-сайт, чтобы начать процесс входа в систему.

Перенаправить телефон на страницу входа публичной сети

Если это не сработает, попробуйте следующий шаг: попытайтесь принудительно загрузить страницу входа, установленную по умолчанию в маршрутизаторе (роутере) публичной сети. Есть несколько универсальных веб-адресов, которые могут перенаправить вас на страницу входа в систему маршрутизатора сети. Итак, подключившись к сети Wi-Fi, включите свой веб-браузер (Safari, Google Chrome, Yandex бразуер, Firefox и т. д.) и введите в браузерной сроке имя routerlogin.net, нажав ввод. В большинстве случаев это поможет автоматически сделать перенаправление на страницу авторизации публичной сети, к которой вы подключились. И если это не сработает, попробуйте ввести поочередно эти веб-адреса:

Читайте также:  All about wifi extenders

Если ни один из вышеперечисленных способов не работает, выполните следующие действия в своем устройстве и повторите попытку:

  • Очистите кеш вашего браузера. Обычно это можно сделать из меню истории вашего браузера
  • Временно отключите все альтернативные DNS-серверы, которые вы используете, и вернитесь к настройкам по умолчанию (откатите устройство к заводским настройкам)

Источник

Как сделать автоматическое открытие страницы при подключении к WiFi ??

Нужно сделать так как это в некоторых заведениях с вайфаем, подключаешься к точке, и автоматом открывается определенная страница в браузере. Как это сделать?

1. прокси-редирект
2. файрвол-редирект.
Стандартные wifi-точки позволяют делать редиректы (например mikrotik) встроеными средствами, в остальных так же — если только файрволом или в проксёй.

Как я делал, по-памяти: человек коннектится без пароля, получает ip, файрвол его безусловно переадресует на 80 порт страницы авторизации с предложением отправить смс для часового доступа. Пользователь отправляет смс — ему приходит пароль, после ввода которого его ip на час (к примеру) попадает в вышестоящее правило файрвола, где доступ уже разрешён. Через час — его ip удаляется из этого правила.
Есть ещё пара вариантов — но это самый бюджетный и к нему подойдёт любая точка, хоть вай-фай карточка в компе 🙂

(14) Ну вот в этой проксе и поставь правило — кто не в белом списке, на спецолимпиаду (зачеркнуто) на спецстраницу.

(18) Что-то все пишете как будто не поняли вопроса. Мне нужно совсем не то. Конкретно сабж, без всяких СМСок, проксей и редиректов.

(21)Тебе же объясняют, устройство, через которое идет трафик, перехватывает его и подсовывает свою страничку.
Конкретно в заведениях с вайфаем любой твой запрос до авторизации будет редиректится на страничку с просьбой заплатить денег.

Тут два варианта, либо ты ставишь КАЖДОМУ клиенту спец софт, который будет перенаправлять его на нужную страницу.

Либо ставишь прокси, который будет отлавливать весь трафик от клиента и перенаправлять его куда надо, по заданному правилу.

(19)»Конкретно сабж, без всяких СМСок, проксей и редиректов.» — конкретно сабж возможно реализовать только при помощи прокси. И никак иначе.

Почему-то вспоминается анекдот:
.
— Чукча не читатель, чукча писатель
🙂

Какой нафиг прокси. До него никакой запрос не поступает если браузер не открыт.

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

(36)Тяжелый случай.
Браузер регулярно посылает запросы если он открыт, по крайней мере любой из современных популярных.
Если у тебя консольный браузер, тогда думаю он не посылает запросов.
Теперь вопрос — у тебя и в консольном браузере открываются страницы?

Jump, ты конечно умный, знаешь как работает браузер, но мне это не нужно рассказывать.
Вопрос в том как сделать чтобы он автоматически запустился и открыл нужную страницу при входе в сеть, как это сделано в некоторых роутерах. Меня интересует как это сделано, и как подсунуть свою страницу.

(39)Ты предлагаешь мне собрать статитику куда какой браузер ходит? Вот мне делать нечего.
Гугл ходит на гугловские сервера, мозилла на свои, експлорер ломиться на сервера майкрософт. В любой браузер встраиваются дополнения, которые вообще что угодно делают, допустим получают RSS.

Читайте также:  Узнать свой код сети вай фай

(40)Как подсунуть свою страницу я тебе объяснил.
А отрыть любое приложение (в том числе и браузер) на комьютере пользователя невозможно по умолчанию.
Если тебе это удастся, то это будет взломом.

(41) Я тебе предлагаю не писать не по теме если не знаешь ответ по теме.
(42) Значит мой зухель взломал мой комп. И точки с вайфаем в кафешках ломают наши телефоны! Ужас!

(49) Ты что за меня отвечаешь?
(50) Что крутого?
(51) Не всех, а только тех кто пытается показать что он самый умный, и при этом не знает о чем тут тема.
(52) За тем что думал что кто-нибудь знает больше меня и сможет помочь, но к сожалению такие еще не заглядывал в эту тему.

(53)Я делал такую вещь, поэтому знаю, и подсказал тебе в (13) как оно делается.

Если тебя это не устраивает, или ты хочешь изобрести свой велосипед, — твои проблемы.

(54) ты явно не то делал что я хочу сделать.
И да, это меня не устраивает, и это мои проблемы, ты ничем не можешь помочь.

(56)В (17) прокся на роутере перехватывает запрос, и делает редирект на свой веб сервер.

(58) Прокся перехватывает только запросы, и редиректит. А роутер работает так: Втыкаем кабель сетевой в роутер, открывается страница с настройками. Если ввести другой адрес, открывается страница по другому адресу. Это ведь не то что ты пишешь

(59)Не так работает роутер.
Если просто воткнуть сетевой кабель, нифига не будет.
Надо как минимум чтобы твой комп с роутером оказались в одной подсети, и роутер у тебя был шлюзом. И роутер не настроен на подключение к провайдеру.
Если этого не будет страница не откроется.
А если роутер шлюз, то он перехватывает http запрос, и дает в ответ на него свою страницу с настройками. Ибо в противном случае ответа вообще бы небыло, ибо подключение к инету еще не настроено.

(60) ну у меня же такой роутер, чего ты мне доказываешь. Там даже в инструкции написано, воткните шнур и откроется страница с настройками. Если ввести другой адрес, страница настроек не откроется, я пробовал.

Другой пример: В аэропорту подключаюсь к точке вайфай на телефоне, сразу открывается браузер со страницей аэропорта. Если его закрыть, под вайфай подключением в том месте где обычно пишется «подключено» другая надпись: «открыть браузер». Обычно этой надписи там нет если подключаться к обычной точке.

(60) >> Надо как минимум чтобы твой комп с роутером оказались в одной подсети, и роутер у тебя был шлюзом
Естественно, при втыкании кабеля создается новое сетевое подключение, для которого роутер выдает IP адрес из той же сети что и он сам, и шлюз там соответственный.

(64)Ну недавно rt-n16 настраивал, ничего он не выдавал, пока сам в админку не зашел.

(65)Угу, если у тебя на компе получение адреса по дхцп выставлено, а не ручками, и другого дхцп в сети нет.

(66) И ты руками прописывал адрес роутера чтобы попасть в админку? Наверное прошивка старая или ХЗ еще что. У меня сама открылась.

Источник

Оцените статью
Adblock
detector