![]() |
Условие подключения к инету
Всем привет!
Подскажите как самым оптимальным условием проверить подключение к инету на С++ вот примерно такой структурой Код:
If {условие} |
реальное подключение к инету ты можешь проверить тока определив ip какогонить крупного сайта.
типа определить имя ip адрес google.com Если определился, значит инет есть. Хотя если юзается кеш DNS то может и не быть инета, а данные берутся из кеша. Но самый действенный способ - просто подрубиться к какомунить сайта, есть подрубился и получил страницу, то инет есть. Единственное что не провериш, если доступ в инет через прокси идет. |
slesh, DNS, www от этих сервисов не всегда можно получить достоверную инфу.
Некоторые ISP отдают зоны даже при отключ. инете, с www - прокся. Обычно админы используют icmp на шлюз. Т.е. если шлюз доступен - инет работает или проблема у ISP, если шлюз не доступен - инета и быть не может :) |
так думаю вернее будет
Код:
#include <WinSock2.h> |
Код:
#undef UNICODEЕсли нужен постоянный мониторинг - юзай цикл. |
А вот пару примеров, из которых два выше варианта работать не будут:
217.69.128.44 упал на 10 сек, а в этот момент была проверка Траблы с маршрутизацией, BGP такое дело И снова коннект на 80 порт, это не разумно проверять конект на веб-сервер |
tracert до отрезолвленного msn.com
условие присутствия интернета это ответ следующего за вашим гейта! ... хотя можно и пингануть гейт провайдера! Интернет - это не америка не корневые ДНС сервера! Интернет -это среда переноса информации! |
Цитата:
|
ну свой гейт комп знает ....поэтому в логике я и писал трейсерт (icmp c временем жизни +1 от времени TTL при котором ответил свой гейт)
|
Retimiled, согласен!
PS: Осталось реализовать на с++ |
хахах, так тоже и с гейтом может быть. на мой вкус - выбрать например Х белых статических ип и действовать в соответствии что пингуется по меньшей мере один из них и все. к томуже - пинг многие экраны закрывают, поэтому самое надежное - пробовать установить связь с веб-интерфейсом
|
Нет пинг со стороны .... adsl модема ,media("оптического") маршрутизатора закрыть провайдер не может .... если не обновятся arp таблицы то и связи не будет между вашим гейтом и гейтом провайдера ни какая IOS не поможет !
Пинг по условию должен править(обновлять) arp таблицы.... поэтому найдите мне того кто сидит в инете и у кого не пингуется дефаулт гейт провайдера и я возьму слова обратно! :D даже если пинг не отвечает .... модем делает пинг, перед этим модем(маршрутизатор просматривает arp таблицу) и если нет записи для гейта .... делает arp запрос и получает arp ответ от маршрутизатора провайдера! далее следует ICMP итд.... ПИНГ - инициатор ARP ЗАПРОСА! ... конечно я понимаю что есть уровень юзера , дак у юзера я могу зарубить что угодно 8))... ... дайте мне юзверя и я ему обрежу хоть яйца хоть уши! 8)) |
Цитата:
Цитата:
|
| Время: 14:53 |