Проверяем соединение с интернетом.

Опубиковано: 09.06.2008 г., автор: , просмотров: 329783

Уроки програмирования на языке Delphi. исходники

Много статей было написано, много слов было сказано, о том как узнать подключен ли компьютер к интернету или нет. На мой взгляд, самый простой способ это узнать, проверить ip адрес. Если он локальный т.е 127.0.0.1, то соединения с интернетом нет, но если ip адрес отличается от 127.0.0.1 то мы подключены к интернету. Так давайте займемся технической реализации данного метода. Открываем Delphi, создаем новый проект. На форму кидаем компонент TcpClient с закладки Internet (в принципе можно воспользоваться и TcpServer), кнопку (button) с закладки Standart и в обработчике событий OnClick кнопки пишем следующий код:

if tcpClient1.LocalHostAddr <>'127.0.0.1'
then
showmessage('Мы в Интернете!!!')
else showmessage('Соединение с интернетом отсутствует!!!');

Полный листинг процедуры:

procedure TForm1.Button1Click(Sender: TObject);
begin
if tcpClient1.LocalHostAddr <>'127.0.0.1'
then showmessage('Мы в Интернете!!!')
else showmessage('Соединение с интернетом отсутствует!!!');
end;

До встречи www.delphiexpert.ru



Похожие материалы

Последние из рубрики

Чарик 05 Mar 2010 в 00:00 #
Автору, бесспорно - респект! Но есть одно, но у меня IP на компе после использования radmin-a изменился, и поэтому у меня всегда "в инете". А получить свой IP можно например так:
procedure TForm1.Button1Click(Sender: TObject);
type
InAddr = Array[0..10] of PInAddr;
TInAddr = ^InAddr;
var
Host: PHostEnt;
pPtr: TInAddr;
Buffer: Array[0..63] of char;
i: Integer;
Socket: TWSAData;
begin
ListBox1.Clear;
WSAStartup( $101, Socket );
GetHostName( Buffer, SizeOf( Buffer ) );
Host := GetHostByName( buffer );
if Host = nil then Exit;
pPtr := TInAddr( Host^.h_addr_list );
i := 0;
while pPtr^[i] <> nil do
begin
ListBox1.Items.Add( inet_ntoa( pPtr^[i]^ ) );
Inc( i );
end;
WSACleanup;
end;
павел 18 Feb 2010 в 00:00 #
спасибо
Алексей 09 Feb 2010 в 00:00 #
С SocketServer было бы проще и функциональние!!!
Дмитрий 24 Dec 2009 в 00:00 #
У меня стоит файервол,а еще я пользуюсь прогой которая подменяет ip,поэтому код не подходит
asd 03 Dec 2009 в 00:00 #
мыло автора

ОтменитьДобавить комментарий