Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2008, 22:45   #1
badfilin
Пользователь
 
Регистрация: 15.03.2008
Сообщений: 27
По умолчанию Проверка подключения к интернету

Здраствуйте.

Как сделать так чтобы программа проверяла подключен ли мой компьютер к интернету или чтобы проверяла работает ли данное подключение.

Спасибо.
badfilin вне форума Ответить с цитированием
Старый 27.03.2008, 00:41   #2
badfilin
Пользователь
 
Регистрация: 15.03.2008
Сообщений: 27
По умолчанию

неужели никто не знает? =)
badfilin вне форума Ответить с цитированием
Старый 27.03.2008, 00:58   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Это называется PING...
Зайдите в раздел "Работа с сетью в Delphi", там этот вопрос неоднократно освещался. По сути к языку этот вопрос не привязан.
mihali4 вне форума Ответить с цитированием
Старый 27.03.2008, 01:04   #4
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

нашел кое-что в одном из справочьников, может тебе поможет
FAQ o Win API
Q> Как определить,имеется ли соединение по RAS?
A>

Код:
BOOL IsInternetConnected ()
{
DWORD nRasDevices = 20;
DWORD nSize = 20;

RASCONN rasconnected [10]; // Ras Connected struct

rasconnected[0].dwSize = sizeof(RASCONN);
RasEnumConnections( rasconnected, &nSize, &nRasDevices );

return ( BOOL (nRasDevices) );
}
Note:Win95(в отличие от NT) считает что соединение произошло,как только модем подымает трубу ;-)
#include <мозг.h>

Последний раз редактировалось merax; 27.03.2008 в 06:56.
Руслантус вне форума Ответить с цитированием
Старый 27.03.2008, 07:16   #5
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Это называется PING...
Зайдите в раздел "Работа с сетью в Delphi", там этот вопрос неоднократно освещался. По сути к языку этот вопрос не привязан.
Причем тут пинг???? Все элементарно.

Код:
#include <windows.h>

 #include <wininet.h>

 #include <stdio.h>

 #include <conio.h>
 
 
 
 typedef BOOL (WINAPI* INETCHECKPROC) (LPDWORD lpdwFlags, DWORD dwReserved);
 
 bool GetStatusConnect()
 {
 
     bool bRetVal;
 
     HINSTANCE hLib = NULL;
 
     INETCHECKPROC pfnInternetGetConnectedState;
 
     hLib = LoadLibrary("wininet.dll");
 
     if (!hLib) 
 
         return 0;
 
      pfnInternetGetConnectedState = (INETCHECKPROC)GetProcAddress(hLib, "InternetGetConnectedState");
 
 
     if(!pfnInternetGetConnectedState)
 
         return false; 
 
     DWORD lpdwFlags;
 
     bRetVal = pfnInternetGetConnectedState(&lpdwFlags, 0) != 0;

     FreeLibrary(hLib); 

     return bRetVal; 

 }

 void main(void)

 {

     printf(GetStatusConnect()?"Connected":"Disconnected");
     printf("\r\nPress any key to continue"); 

     while(!_getch());
 
     return; 

 }
merax вне форума Ответить с цитированием
Старый 27.03.2008, 12:35   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Причем тут пинг?
Да при том, что это - единственно достоверный способ.
Все эти "CONNECTED" могут висеть сколько угодно, хотя реально соединения с инетом нет. Собственно, вопрос уже достаточно обмусолен, не вижу смысла повторяться.
mihali4 вне форума Ответить с цитированием
Старый 27.03.2008, 14:44   #7
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Да при том, что это - единственно достоверный способ
А если пинг зарублен на маршрутизаторах? И телнет ? Скажите еще письмо отправить и ждать ответ

P.S. Хотя можно tracer и nslookup попробовать. Интересная тема. Попробую решение найти.
merax вне форума Ответить с цитированием
Старый 27.03.2008, 15:45   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
А если пинг зарублен на маршрутизаторах? И телнет ? Скажите еще письмо отправить и ждать ответ
Так а что - это будем считать как "есть доступ"?
Странная логика.
Тогда, знаете ли, мы все с вами - миллионеры. Ведь где-то там эти деньги есть...
И то, что нас "зарубают" на входе в банк - это ерунда, ведь деньги-то там лежат...
И что банк на наши письма не отвечает - тоже чепуха, ведь мы то знаем - деньги там есть...

Последний раз редактировалось mihali4; 27.03.2008 в 15:50.
mihali4 вне форума Ответить с цитированием
Старый 27.03.2008, 16:03   #9
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Даже более того, признаком того, что интернет есть может быть только то, что мы сумели прицепиться по определённому порту к определённому адресу или (О! Нас пустили на DNS!) определённому домену. Все Ras-, Net-, WNet- енумы хороши только чтобы определиться в новом "жизненном" пространстве или попробовать "дозвониться". Если учесть, что сейчас чуть не каждый текстовый редактор или гляделка картинок так и норовят вылезти в интернет, да еще высунуть туда пару-тройку портов, ответ им всегда один - ACCESS DENIED. Ну можно еще покопать в сторону Skype - крайне мерзопакостная программа.
B_N вне форума Ответить с цитированием
Старый 28.03.2008, 02:27   #10
badfilin
Пользователь
 
Регистрация: 15.03.2008
Сообщений: 27
По умолчанию

Всем спасибо. Буду смотреть и эксперементировать.
badfilin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите подключение к интернету eldar Работа с сетью в Delphi 14 18.07.2012 01:25
проверка подключения к Интернет Noor Работа с сетью в Delphi 9 13.07.2011 01:44
Проверка подключения Shouldercannon Общие вопросы Delphi 4 11.08.2008 14:41
Подключение к интернету ilya_cska Общие вопросы .NET 0 10.03.2008 12:27
Определить подключен ли комп к интернету Иллидан Общие вопросы Delphi 2 21.02.2008 13:26