|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Чекнуть соединение с интернетом
Собственно задача в том, что бы проверить, есть ли связь с интернетом на мобильном устройстве. Судя по форумам, проблема актуальная.
Ping чего-либо не вариант. Попробовать с чем-то соединиться в прицепе заканчивается фатальной ошибкой. Скорее всего я не знаю какой-нибудь хитрой функции какого-нибудь компонента (ftp, http, icmp результатов не дали) Вот прям код не прошу, хотя бы подскажите где копать. Да, если есть знатоки работы с API (iOS, Android). Это тоже вариант, но сам с API никогда не работал. |
#2
|
||||
|
||||
В первый раз слышу что это актуальная проблема даже на мобильных устройствах в настоящее время. Просто постоянно им пользуюсь последние года два. Но если все-таки нужно, то можно пойти по пути Microsoft: делать запрос на их сервер. Как это сделать было на форуме. Мне сейчас с iPhone искать несподручно
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Речь идёт о POST/GET запросе через http?
Последний раз редактировалось DarkMoth, 18.11.2016 в 13:53. |
#4
|
||||
|
||||
Да, самый достоверный способ проверить работу интернета это сделать запрос GET/POST на заведомо работающий сервер, не принадлежащий провайдеру.
Пишу программы за еду. __________________ |
#5
|
|||
|
|||
Не выходит
мобилка всё равно вылетает. Напишите пожалуйста код для get запрса который чекает соединение с интернетом. Сейчас это выглядит так Код:
procedure Form.Button1Click(Sender: TObject); begin try memo2.Text := idhttp.Get('http://google.com'); servstat.FontColor := TAlphaColorRec.green; except servstat.FontColor := TAlphaColorRec.Red end; idHttp.Free; end; |
#6
|
||||
|
||||
Как навязывают проверять в майкрософт (для D7)
Код:
function Form.IsConnect: boolean; var http: TIdHTTP; begin http:= TIdHTTP.Create(Self); try http.Get('http://www.msftncsi.com/ncsi.txt'); if http.ResponseCode = 200 then Result:= true; except Result:= false; end; http.Free; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
DarkMoth (19.11.2016)
|
#7
|
|||
|
|||
Что-то мне мозгов не хватает как это именно функцией вставить и что-то делать по результату.
В виде процедуры, всё так же выкидывает мобилку( |
#8
|
||||
|
||||
Второй этап проверки работы интернет - проверка работоспособности DNS.
Для этого можно попытаться определить IP-адрес хоста dns.msftncsi.com. Значение должно быть 131.107.255.255. Примерно так: Код:
uses WinSock, function dns_msftncsi_com: Boolean; var WSAData: TWSAData; HostEnt: PHostEnt; begin WSAStartup(MakeWord(2, 2), WSAData); HostEnt:=gethostbyname('dns.msftncsi.com'); Result:=(HostEnt<>nil) and (inet_ntoa(PInAddr(HostEnt^.h_addr_list^)^)='131.107.255.255'); WSACleanup; end; Пишу программы за еду. __________________ |
#9
|
||||
|
||||
Под андроид есть свой класс TCustomNetworkState с набором функций типа GetSSID, IsConnecte, IsWifiConnected и IsMobileConnected
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |