ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Условие подключения к инету
  #1  
Старый 29.12.2009, 09:15
marcos
Участник форума
Регистрация: 08.11.2009
Сообщений: 114
Провел на форуме:
201148

Репутация: -4
По умолчанию Условие подключения к инету

Всем привет!
Подскажите как самым оптимальным условием проверить подключение к инету на С++

вот примерно такой структурой
Код:
If {условие}
остальной код
 
Ответить с цитированием

  #2  
Старый 29.12.2009, 10:17
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

реальное подключение к инету ты можешь проверить тока определив ip какогонить крупного сайта.
типа определить имя ip адрес google.com
Если определился, значит инет есть. Хотя если юзается кеш DNS то может и не быть инета, а данные берутся из кеша.

Но самый действенный способ - просто подрубиться к какомунить сайта, есть подрубился и получил страницу, то инет есть. Единственное что не провериш, если доступ в инет через прокси идет.
 
Ответить с цитированием

  #3  
Старый 29.12.2009, 10:42
lo0
Участник форума
Регистрация: 06.03.2006
Сообщений: 122
Провел на форуме:
709545

Репутация: 72
По умолчанию

slesh, DNS, www от этих сервисов не всегда можно получить достоверную инфу.
Некоторые ISP отдают зоны даже при отключ. инете, с www - прокся.
Обычно админы используют icmp на шлюз. Т.е. если шлюз доступен - инет работает или проблема у ISP, если шлюз не доступен - инета и быть не может
 
Ответить с цитированием

  #4  
Старый 29.12.2009, 16:12
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

так думаю вернее будет

Код:
#include <WinSock2.h>
#pragma comment(lib, "ws2_32")

BOOL IsOnline()
{
	WSADATA wsd;
	WSAStartup(0x202, &wsd);

	SOCKET sck;
	SOCKADDR_IN addr;
	int rc;

	addr.sin_family = AF_INET;
	// standard http port
	addr.sin_port = htons(80);
	// mail.ru ip
	addr.sin_addr.S_un.S_addr = inet_addr("217.69.128.44");

	sck = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	rc = connect(sck, (LPSOCKADDR)&addr, sizeof(addr));

	if(rc == 0){
		closesocket(sck);
		return TRUE;
	}


	return FALSE;
}


int _tmain(int argc, _TCHAR* argv[])
{

	if(IsOnline()){
		MessageBox(0, "ONLINE", 0, 0);
	}else{
		MessageBox(0, "OFFLINE", 0, 0);
	}


	return 0;
}
__________________


snow white world wide
 
Ответить с цитированием

  #5  
Старый 29.12.2009, 17:25
Ins3t
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
Провел на форуме:
2083691

Репутация: 330
По умолчанию

Код:
#undef UNICODE
#include <winsock2.h>
#pragma comment( lib, "wsock32.lib" )
int main(int argc, char* argv[])
	{
	sockaddr_in s_a;
	WSADATA wd;
	WSAStartup( MAKEWORD( 2, 2 ), &wd );
	SOCKET s = socket( AF_INET, SOCK_STREAM, 0 );
	if (s == INVALID_SOCKET)
		{
		return 255;
		}
	s_a.sin_addr.s_addr = inet_addr( "217.69.128.44" );
	s_a.sin_port = htons( 80 );
	s_a.sin_family = AF_INET;
	if (connect( s, (struct sockaddr*)&s_a, sizeof( s_a ) ) == SOCKET_ERROR)
		{
		MessageBox(0,"OFFLINE!","Winname",MB_OK);
		}
	else
		{
		MessageBox(0,"ONLINE!!","Winname",MB_OK);
		}
	closesocket( s );
	WSACleanup();
	return 0;
	}
Вот без создания ф-и.
Если нужен постоянный мониторинг - юзай цикл.
 
Ответить с цитированием

  #6  
Старый 29.12.2009, 17:52
lo0
Участник форума
Регистрация: 06.03.2006
Сообщений: 122
Провел на форуме:
709545

Репутация: 72
По умолчанию

А вот пару примеров, из которых два выше варианта работать не будут:
217.69.128.44 упал на 10 сек, а в этот момент была проверка
Траблы с маршрутизацией, BGP такое дело
И снова коннект на 80 порт, это не разумно проверять конект на веб-сервер

Последний раз редактировалось lo0; 29.12.2009 в 17:56..
 
Ответить с цитированием

  #7  
Старый 29.12.2009, 19:12
Retimiled
Banned
Регистрация: 24.12.2009
Сообщений: 141
Провел на форуме:
487460

Репутация: 45
По умолчанию

tracert до отрезолвленного msn.com
условие присутствия интернета это ответ следующего за вашим гейта!

... хотя можно и пингануть гейт провайдера!

Интернет - это не америка не корневые ДНС сервера!
Интернет -это среда переноса информации!
 
Ответить с цитированием

  #8  
Старый 29.12.2009, 19:20
lo0
Участник форума
Регистрация: 06.03.2006
Сообщений: 122
Провел на форуме:
709545

Репутация: 72
По умолчанию

Цитата:
Сообщение от Retimiled  
... хотя можно и пингануть гейт провайдера!
А кокой гейт-то пинговать? У меня 4 канала(BGP)
 
Ответить с цитированием

  #9  
Старый 29.12.2009, 19:25
Retimiled
Banned
Регистрация: 24.12.2009
Сообщений: 141
Провел на форуме:
487460

Репутация: 45
По умолчанию

ну свой гейт комп знает ....поэтому в логике я и писал трейсерт (icmp c временем жизни +1 от времени TTL при котором ответил свой гейт)
 
Ответить с цитированием

  #10  
Старый 29.12.2009, 19:30
lo0
Участник форума
Регистрация: 06.03.2006
Сообщений: 122
Провел на форуме:
709545

Репутация: 72
По умолчанию

Retimiled, согласен!

PS: Осталось реализовать на с++
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ZyXEL представила первый в мире интернет-центр для подключения по 4G-технологии LTE aka_zver Новости мира "железа" 5 19.12.2009 19:12
Ошибки Windows 2 SVipeR Windows 9 02.03.2009 19:28
Ошибки Windows dinar_007 Windows 19 01.07.2007 13:32
Посимвольный перебор в базах данных на примере MySQL LoFFi Чужие Статьи 5 30.04.2007 05:05
Выбор подключения по умолчанию... Deniska Windows 12 16.01.2006 12:51



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ