Проверка дали има интернет

4 отговора 0 прегледа
#1

Проверка дали има интернет

Как мога да проверя дали има интернет връзка на компютъра на потребителя на Делфи проложението, без да го бавя да чака таймаут? Try .. Except не ми върши работа. Ако има някаква фунция, която може да провери бързо на ниско ниво. Нещо такова.

Отговор
в отговор на ниkoй #2

Re: Проверка дали има интернет

Виж функцията InternetGetConnectedState. Декларирана е в модула WinInet - трябва да го добавиш към uses:

uses ... WinInet;
...
var P: DWORD;
...
if InternetGetConnectedState(@P,0) then
// има нет
else
// няма нет

Mixy
Отговор
в отговор на ниkoй #3

Re: Проверка дали има интернет

В общия случай въпроса е безсмислен. Интернет това са много мрежи свързани в една.
И за да разбереш свързан ли си с интернет трябва да провериш дали имаш връзка с всяка от тях.
Това е безсмислено.
Обикновено е необходимо да се свържеш с конкретен сървер.
Затова просто опитваш да се свържеш с него и виждаш има ли връзка или няма.

Като алтернатива може да се пробва ping към някой популярен сайт като гугъл например.
Но това пак не е решение в общия случай.

Отговор
в отговор на Mixy #4

Re: Проверка дали има интернет

мерси много. функцията е бърза и работи коректно. точно това ми трябваше.
ping е бавно...

Отговор
в отговор на eмил #5

Re: Проверка дали има интернет

Става и с функцията InternetCheckConnection декларирана е в WinInet. С нея можеш да провериш дали има връзка към даден хост примерно [линк].

Отговор