Я хочу реализовать запрос ping на языке Си. Я работаю на платформе Windows. Кто-нибудь может подсказать, как это реализовать или если код уже доступен, то откуда я могу его найти?
Очень полезный и открытый исходный код - fping .
fping - это программа, похожая на ping (1), которая использует эхо-запрос протокола управляющих сообщений Интернета (ICMP), чтобы определить, работает ли хост. fping отличается от ping тем, что вы можете указать любое количество хостов в командной строке или указать файл, содержащий списки хостов для ping. Вместо того, чтобы пробовать один хост до истечения времени ожидания или ответа, fping отправит пакет ping и перейдет к следующему хосту циклическим образом. Если хост отвечает, он отмечается и удаляется из списка хостов для проверки. Если хост не отвечает в течение определенного периода времени и / или лимита повторных попыток, он будет считаться недоступным. В отличие от ping, fping предназначен для использования в скриптах, а его вывод легко анализируется.
fping - это программа, похожая на ping (1), которая использует эхо-запрос протокола управляющих сообщений Интернета (ICMP), чтобы определить, работает ли хост. fping отличается от ping тем, что вы можете указать любое количество хостов в командной строке или указать файл, содержащий списки хостов для ping. Вместо того, чтобы пробовать один хост до истечения времени ожидания или ответа, fping отправит пакет ping и перейдет к следующему хосту циклическим образом. Если хост отвечает, он отмечается и удаляется из списка хостов для проверки. Если хост не отвечает в течение определенного периода времени и / или лимита повторных попыток, он будет считаться недоступным.
В отличие от ping, fping предназначен для использования в скриптах, а его вывод легко анализируется.
Вы можете использовать system () для запуска команд командной строки. Так что-то вроде
system("ping 127.0.0.1")
должно работать.