На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS

Дорогие друзья! Поздравляем вас с Новым 2018 годом!

Всем удачи, успеха и благополучия!
В новом году ожидаем новых рекордов при подсчёте количества ёлочек на экране ;)


msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

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

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
  
> Мониторинг Ip, Определение активности заданных айпиадресов
    Добрый день! В сетевом программировании я можно сказать новичок, и поэтому прошу вашей помощи. Требуется создать программку, которая будет отображать информацию о сетевых устройствах (компьютерах айпи-телефонах) по заранее заданным айпи адресам. Если простым языком, то имеется порядка десяти устройств со статическими айпи-адресами. Требуется программа, которая будет отображать в сети данный айпи адрес или же нет.
    Предпологается, что будет выглядеть так: имеется таблица с айпи-адресами (которые можно добавлять или удалять), и напротив айпи-адреса статус устройства (включен\выключен).
    Перечитал кучу форумов, литературы, мануалов. Пересмотрел кучу роликов и примеров, но так ничего и не понял что это такое и с чем это едят. Прошу Вашей помощи в реализации проекта.
      Ищи реализацию ping на delphi

      А вообще мне кажется ты изобретаешь велосипед.

      Добавлено
      Кстати такой уже есть бесплатный софт:
      http://www.nirsoft.net/utils/multiple_ping_tool.html
      "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
        Оно то и понятно, что подобные решения давно существуют. Про Ping уже думал и пытался реализовать на нем, но проблема в длительном ожидании ответа даже одного айпи-адреса. А опрашивать сразу несколько.... Советуют многопоточность использовать.
          Цитата Century27 @
          проблема в длительном ожидании ответа даже одного айпи-адреса

          у тебя сеть локальная? пинг должен за 1 МС проходить. До гугла у меня 6 МС. Так что про долго быть не должно. Для 10-ти устройств раз в 10 секунд по порядку пинговать можно и без многопоточности
          "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
            И все же, можно поподробнее, если можно даже с примерчиком.
            Хочу понять хотя бы начало, а дальше как говориться больше
              Мне хотя бы разобраться как преобразовать полученное значение от Ping в "активен\выключен".
              И как быть в случае если адрес недоступен прога подвисает на некоторое время и не переходит к пингованию следующего адреса
                CreateProcess('ping.exe ya.ru'), вернет ProcessHandle
                По таймеру проверять ExitCode: 0 - ОК, <>0 - ошибка. Всё.

                По желанию - запускать несколько процессов одновременно.
                Это наиболее быстрый и простой в реализации для новичка в сетях способ.
                Сообщение отредактировано: Fr0sT -
                Codero ergo sum
                // Программирую — значит, существую
                  Цитата Fr0sT @
                  CreateProcess('ping.exe ya.ru'), вернет ProcessHandle
                  По таймеру проверять ExitCode: 0 - ОК, <>0 - ошибка. Всё.

                  А вот с этого места поподробнее, если не затруднит
                    Цитата Fr0sT @
                    CreateProcess('ping.exe ya.ru'), вернет ProcessHandle
                    По таймеру проверять ExitCode: 0 - ОК, <>0 - ошибка. Всё.

                    гениально :good:
                    "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
                      Цитата Century27 @
                      А вот с этого места поподробнее, если не затруднит

                      Что там подробнее-то? Функции CreateProcess и GetExitCodeProcess, открыть MSDN и читать. Ну или лениво гуглить готовые примеры.
                      Сообщение отредактировано: Fr0sT -
                      Codero ergo sum
                      // Программирую — значит, существую
                        Тут пример с объяснениями:
                        http://www.cyberforum.ru/delphi-beginners/thread548891.html
                        "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
                          вы помоему изобретаете велосипед!, если сеть локальная (все устройства в пределах физической сети до маршрутизатора), то ping вообще не нужен! достаточно послать запрос уровня L2 (ARP) и ловить ответ.
                          в *nix системах давно для данных целей есть утилита arp-scan
                          нечто подобное сделали и под windows.
                          https://github.com/QbsuranAlang/arp-scan-wi...p-scan/arp-scan
                          код на си, но очень легко перевести на паскаль, ибо чистый api
                          а можно использовать как законченную утилиту, ваши нужды перекроет с лихвой, умеет сканировать по списку взятому из файла.

                          PS и да ping часто может быть отключен/запрещен/прикрыт файрволом, а вот от arp не скроется никто.
                          Сообщение отредактировано: Virtuals -
                            Цитата Virtuals @
                            очень легко перевести на паскаль, ибо чистый api

                            Да уж чище некуда
                            ExpandedWrap disabled
                              #pragma comment(lib, "iphlpapi.lib")
                            Codero ergo sum
                            // Программирую — значит, существую
                            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script Execution time: 0,1177 ]   [ 15 queries used ]   [ Generated: 22.01.18, 14:06 GMT ]