Вопрос о команде Ping

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
alibek
Большой Человек
Большой Человек
 
Сообщения: 14173
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос о команде Ping

Сообщение alibek » 26.11.2019 (Вт) 12:58

Vova_2581 писал(а):alibek, что Вы имеете ввиду "сделать что-то более правильное"???

В сообщении о блокировке доступа может быть написано "Success blocked", а функция вернет позитивный результат.
Нужно проверять возвращаемое содержимое. Оно в обозримом времени не поменяется.

Vova_2581 писал(а):Вообще, метод хороший, но довольно медленный

Потому что эта функция предназначена для другого.
При злоупотреблениях Apple может и заблокировать.
Lasciate ogni speranza, voi ch'entrate.

Vova_2581
Бывалый
Бывалый
 
Сообщения: 280
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Вопрос о команде Ping

Сообщение Vova_2581 » 26.11.2019 (Вт) 13:26

А... вот оно что. Спасибо за инфу таких тонкостей не знал. Спасибо!

Vova_2581
Бывалый
Бывалый
 
Сообщения: 280
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Вопрос о команде Ping

Сообщение Vova_2581 » 27.11.2019 (Ср) 11:13

Разрешите спросить мнение специалистов еще по такому вопросу... В общем, как уже писал... реактивность запроса страниц по вышеизложенным алгоритмам оставляет желать лучшего, в связи с чем появилась идея... не знаю насколько она реалистична, давайте обсудим. Суть идеи: не запрашивать страницы и не читать их содержимое на что уходит уйма времени, а просто проверять доступность соответствующих портов целевого ресурса. Если они открыты, значит ресурс доступен, и наоборот... То есть, протокол HTTP реализуется через порт 80, а HTTPS – через 443, следовательно, проверяем доступность этих портов, к примеру ресурсов http://bbs.vbstreets.ru - 80, и 443 порт ресурса https://www.youtube.com, если порты отрыты, значит и ресурсы доступны. Можно ли пойти таким путем, как Вы считаете???

alibek
Большой Человек
Большой Человек
 
Сообщения: 14173
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос о команде Ping

Сообщение alibek » 27.11.2019 (Ср) 13:16

Правильный способ уже сообщали.
Не нужно ничего проверять предварительно.
Нужно просто работать с ресурсом и обрабатывать ошибки.
Lasciate ogni speranza, voi ch'entrate.

Vova_2581
Бывалый
Бывалый
 
Сообщения: 280
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Вопрос о команде Ping

Сообщение Vova_2581 » 27.11.2019 (Ср) 19:44

Vova_2581 писал(а):Вообще, метод хороший, но довольно медленный

alibek писал(а):Потому что эта функция предназначена для другого.

Я просто прорабатываю варианты ускорения... работы алгоритма. :roll:

Vova_2581
Бывалый
Бывалый
 
Сообщения: 280
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Вопрос о команде Ping

Сообщение Vova_2581 » 05.12.2019 (Чт) 10:54

Ваша правда, господа! Таки да... Недавно имел возможность наблюдать сию картину маслом – это я имею сказать к словам alibek...
Во-первых, ping может быть недоступен, заблокирован или ограничен в привилегиях.
Во-вторых, успешный или неуспешный ответ на пинг ни о чем не говорит.

И что бы Вы думали??.. Таки чудо свершилось... Недавно на работе на некой локальной машине что-то там глюкануло, машину один разок «стошнило» синим экраном и после этого случился описанный Вами конфуз: перебрал штуки три DNS на пинг и НИОДИН(!) не прошел – узлы были недоступны не в зуб ногой, в тоже время, при этом, в браузере абсолютно все(!) сайты открывались как ни в чем не бывало и быстро... словно горячим ножом по сливочному маслу!.. Было такое впечатление, что ICMP вообще накрыло медным тазом. Таки да... Ваша правда, уважаемые! :)

Vova_2581
Бывалый
Бывалый
 
Сообщения: 280
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Вопрос о команде Ping

Сообщение Vova_2581 » 05.12.2019 (Чт) 10:58

Теперь дальше... Разрешите поинтересоваться может кто знает в чем дело... Недавно ковыряясь пальцем в... в... как его.... в... API... да... нашел одну функцию довольно шуструю – IsDestinationReachable она определяет: достижим ли указанный URL и возвращает тип соединения с интернет и его скоростя. Так вот, набросал код... в XP все прекрасно работает, а вот на 7-ке почему-то не хочет, хотя в MSDN вроде все должно работать и на 7-ке. В инете про эту функцию почти никакой информации, уже все мусорки... ... в смысле везде облазил – нигде толком ничего. Вы случайно не знаете, почему она не работает в Win 7 ???
Код: Выделить всё
Const NETWORK_ALIVE_LAN = &H1
Const NETWORK_ALIVE_WAN = &H2
Private Type QOCINFO
    dwSize As Long
    dwFlags As Long
    dwInSpeed As Long
    dwOutSpeed As Long
End Type
Const DR As String = "http://bbs.vbstreets.ru"
Private Declare Function IsDestinationReachable Lib "SENSAPI.DLL" Alias "IsDestinationReachableA" (ByVal lpszDestination As String, ByRef lpQOCInfo As QOCINFO) As Long
Private Sub Form_Load()
    Dim Ret As QOCINFO
    Ret.dwSize = Len(Ret)
    If IsDestinationReachable(DR, Ret) = 0 Then
        MsgBox "Пункт назначения " & DR & " НЕ достигнут!", vbCritical
    Else
        MsgBox "Пункт назначения " & DR & " достигнут успешно!" _
        + IIf(Ret.dwFlags = NETWORK_ALIVE_LAN, "LAN", "WAN") _
        + " network", vbInformation
    End If
    End
End Sub 

alibek
Большой Человек
Большой Человек
 
Сообщения: 14173
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос о команде Ping

Сообщение alibek » 05.12.2019 (Чт) 12:17

Видимо в Windows 7 больше нет пакета, в который входит SENSAPI.DLL.
Lasciate ogni speranza, voi ch'entrate.

Vova_2581
Бывалый
Бывалый
 
Сообщения: 280
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Вопрос о команде Ping

Сообщение Vova_2581 » 05.12.2019 (Чт) 16:49

alibek писал(а):Видимо в Windows 7 больше нет пакета, в который входит SENSAPI.DLL.

Извольтессс...
Screen1.jpg
Screen1.jpg (50.96 Кб) Просмотров: 137


P.S.
Ааа... извините... сложности перевода... не дочитал... В MSDN написано, что как раз начиная с Vista эта функция больше НЕ поддерживается. Все. Вопрос снят.

Vova_2581
Бывалый
Бывалый
 
Сообщения: 280
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Вопрос о команде Ping

Сообщение Vova_2581 » 14.12.2019 (Сб) 12:25

Интересно, что аббревиатура протокола ICMP расшифровывается как Internet Control Message Protocol - тут, как бы, ключевые слова Internet Control, а в нынешнее время его то блокируют, то запрещают, в конечном итоге, нивелируя саму идею этого механизма. :?

Пред.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList  
cron