На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
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,1234 ]   [ 20 queries used ]   [ Generated: 11.12.17, 03:52 GMT ]