![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подключение к интернет. [D6, Win95/98]
Anar © (2002-02-27 14:01:00)Как определить, что в настоящее время PC подключен к интернет или нет?
lipskiy (2002-03-02 18:45:00) [1]To Reindeer Moss Eater
Кхм... Согласен, конечно.
Для этого действительно нужно подходить к проблеме с четким определением - что-же именно нужно проверять. Просто чаще всего требуется простейший вариант - доступность именно WWW.
Reindeer Moss Eater (2002-03-02 13:47:00) [2]> lipskiy
Это скорее ответы на вопрос "Доступны ли мне ресурсы WWW ?". Но интернет это далеко не только WWW.
А вопрос поставлен именно так "Есть интернет или нет?"
Проверку URL по какому из многочисленных возможных протоколов вы предлагаете делать?
И как объяснить Васе, имеющему интерет, почему же у него не работает ftp, или почему он не может пингвать www.delphi.mastak.ru
lipskiy (2002-03-01 20:03:00) [3]IMHO:
1 - да.
2 - да.
3 - всегда, когда есть потенциальная возможность (при благоприятных независящих условиях) получить любые ресурсы из интернета - надо считать, что подключение есть.
Поэтому и предлагается делать проверку URLа.
Reindeer Moss Eater (2002-03-01 09:07:00) [4]Чтобы ответить на поставленный вопрос с помощью кода на Delphi, для начала неплохо бы ответить на простые вопросы без использования компьютера:
1. Сидит Вася в компьютерном классе и читает эту конференцию через "чистый" HTTP прокси. Подключен он к интернету?
2. Петя позвонил модемом к своему провайдеру и деньги за диалап уже капают, но ближайший маршрутизатор в дауне и Петя может ходить только по "домашней" сети провайдера. Есть у Пети интернет?
3. И так далее ...
lipskiy (2002-02-28 20:52:00) [5]
> ближайший сервер провайдера
А если это прога не для себя, а для вообще, то как узнать сервер провайдера?
panov (2002-02-28 06:36:00) [6]делать проверку на доступность какого-либо URL
Не какого-нибудь, а конкретно - ближайший сервер провайдера.
lipskiy (2002-02-27 20:57:00) [7]Между прочим очень многие предлагаемые варианты работают криво или не на всех ОСах. Поэтому и вопросы часто эти возникают. IMHO самое надежное - делать проверку на доступность какого-либо URL, того же www.microsoft.com :)
Reindeer Moss Eater (2002-02-27 19:07:00) [8]> Olivka
Вопрос, в том виде в каком он задан, не имеет правильного ответа.
Olivka (2002-02-27 18:34:00) [9]Никогда делать это не приходилось, но по-моему, в каждом ФАКе это есть.
Ghost. (2002-02-27 17:40:00) [10]Это уже не смешно...
KvORubin (2002-02-27 17:14:00) [11]Воткни Button1 и
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const IC_Modem=1;
IC_LAN= 2;
IC_PROXY=3;
IC_MODEM_BUSY=4;
winetdll="wininet.dll";
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
function InternetGetConnectedState(lpdwFlags:LPDWORD; dwReserved: DWORD): BOOLEAN; stdcall; external winetdll name"InternetGetConnectedState";
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var dwConnectionTypes: DWORD;
begin
dwConnectionTypes:=IC_MODEM+IC_LAN+IC_PROXY;
if InternetGetConnectedState(@dwConnectionTypes,0) then ShowMessage("Youa connected")
else ShowMessage("No Connection");
end;
end.
Wonder (2002-02-27 15:41:00) [12]Я пошел выбрасываться из окна...