На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Проверка соединения с интернетом , Пингование и другие способы...
    Всем доброго времени суток!

    Есть маленький вопрос...
    Как проверить соединение с интернетом???

    Знаю есть функция проверки соединения с интернетом GetInternetConection, но она походу проверяет только наличие самого соединения с интернетом, а не саму связь!
    Если написать функцию, которая будет проверять соединения с нетом методом например пингования. Т.е. будет отсылать пакеты по определенному адрессу и фиксировать состояние о получении пакетов, то думаю это будет именно оно ))))

    Ктонить знает как это реализовать???? :rolleyes:

    Или каким нибудь другим методом?!

    Людая помощь будет отблагодрена от души!!!!
    Заранее спасибо!!!
      Ну что то подобное я делал .. вот глянь мож то ? :)

      Качество соединения определяется по первому и последнему значению .... чем меньше тем лучше ... :)
      Сообщение отредактировано: Somik73 -

      Прикреплённый файлПрикреплённый файлLanTest.rar (13.3 Кбайт, скачиваний: 106)
        Вот реализцаия PING из API Guide:
        ExpandedWrap disabled
          Const SOCKET_ERROR = 0
          Private Type WSAdata
              wVersion As Integer
              wHighVersion As Integer
              szDescription(0 To 255) As Byte
              szSystemStatus(0 To 128) As Byte
              iMaxSockets As Integer
              iMaxUdpDg As Integer
              lpVendorInfo As Long
          End Type
          Private Type Hostent
              h_name As Long
              h_aliases As Long
              h_addrtype As Integer
              h_length As Integer
              h_addr_list As Long
          End Type
          Private Type IP_OPTION_INFORMATION
              TTL As Byte
              Tos As Byte
              Flags As Byte
              OptionsSize As Long
              OptionsData As String * 128
          End Type
          Private Type IP_ECHO_REPLY
              Address(0 To 3) As Byte
              Status As Long
              RoundTripTime As Long
              DataSize As Integer
              Reserved As Integer
              data As Long
              Options As IP_OPTION_INFORMATION
          End Type
          Private Declare Function GetHostByName Lib "wsock32.dll" Alias "gethostbyname" (ByVal HostName As String) As Long
          Private Declare Function WSAStartup Lib "wsock32.dll" (ByVal wVersionRequired&, lpWSAdata As WSAdata) As Long
          Private Declare Function WSACleanup Lib "wsock32.dll" () As Long
          Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
          Private Declare Function IcmpCreateFile Lib "icmp.dll" () As Long
          Private Declare Function IcmpCloseHandle Lib "icmp.dll" (ByVal HANDLE As Long) As Boolean
          Private Declare Function IcmpSendEcho Lib "ICMP" (ByVal IcmpHandle As Long, ByVal DestAddress As Long, ByVal RequestData As String, ByVal RequestSize As Integer, RequestOptns As IP_OPTION_INFORMATION, ReplyBuffer As IP_ECHO_REPLY, ByVal ReplySize As Long, ByVal TimeOut As Long) As Boolean
          Private Sub Form_Load()
              'KPD-Team 2000
              'URL: http://www.allapi.net/
              'E-Mail: KPDTeam@Allapi.net
              Const HostName = "www.allapi.net"
              Dim hFile As Long, lpWSAdata As WSAdata
              Dim hHostent As Hostent, AddrList As Long
              Dim Address As Long, rIP As String
              Dim OptInfo As IP_OPTION_INFORMATION
              Dim EchoReply As IP_ECHO_REPLY
              Call WSAStartup(&H101, lpWSAdata)
              If GetHostByName(HostName + String(64 - Len(HostName), 0)) <> SOCKET_ERROR Then
                  CopyMemory hHostent.h_name, ByVal GetHostByName(HostName + String(64 - Len(HostName), 0)), Len(hHostent)
                  CopyMemory AddrList, ByVal hHostent.h_addr_list, 4
                  CopyMemory Address, ByVal AddrList, 4
              End If
              hFile = IcmpCreateFile()
              If hFile = 0 Then
                  MsgBox "Unable to Create File Handle"
                  Exit Sub
              End If
              OptInfo.TTL = 255
              If IcmpSendEcho(hFile, Address, String(32, "A"), 32, OptInfo, EchoReply, Len(EchoReply) + 8, 2000) Then
                  rIP = CStr(EchoReply.Address(0)) + "." + CStr(EchoReply.Address(1)) + "." + CStr(EchoReply.Address(2)) + "." + CStr(EchoReply.Address(3))
              Else
                  MsgBox "Timeout"
              End If
              If EchoReply.Status = 0 Then
                  MsgBox "Reply from " + HostName + " (" + rIP + ") recieved after " + Trim$(CStr(EchoReply.RoundTripTime)) + "ms"
              Else
                  MsgBox "Failure ..."
              End If
              Call IcmpCloseHandle(hFile)
              Call WSACleanup
          End Sub

        А вообще можно было бы запустить ping и перенаправить вывод из консоли скажем в текстбокс и оттуда выдирать значения таймаута и др.
          Цитата Lumen @
          А вообще можно было бы запустить ping и перенаправить вывод из консоли скажем в текстбокс и оттуда выдирать значения таймаута и др.

          С этого места по подробнее ... хотелось бы на это взглянуть :)
          Сообщение отредактировано: Somik73 -
            Вот когда-то меня тоже интересовал этот вопрос, думаю тебе будет интересно почитать. Если какие проблемы будут - спрашивай...
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0399 ]   [ 16 queries used ]   [ Generated: 15.07.24, 11:59 GMT ]