Ответы на Ping трансляцию - PullRequest
       42

Ответы на Ping трансляцию

1 голос
/ 23 декабря 2011

Я пишу программу на .NET c ++. Я отправляю широковещательный пинг в моей локальной сети. Все мои целевые устройства могут отвечать на широковещательную рассылку, и я действительно отслеживаю все их ответы в Wireshark. Моя цель - получить IP-адреса всех отвечающих станций.

Проблема в том, что API-интерфейс Microsoft не включает поддержку записи всех ответов за определенный промежуток времени. Функции, такие как IcmpSendEcho, просто возвращаются при первом ответе (хотя API утверждает, что он может записать более одного ответа icmp), это известная и после поиска и поиска здесь все сообщают об одной и той же проблеме с этими функциями.

Что я могу сделать, чтобы достичь своей цели, не переходя на слишком низкий уровень для получения ответа? Есть ли в Windows какая-то запись истории icmp? Буду благодарен за любые предложения!

1 Ответ

0 голосов
/ 25 декабря 2011
 1) First call FlushIpNetTable.
 2) Send the ping and ignore the response.
 3) Read the ARP table using the GetIpNetTable call.
...