1

私は.NETc++でプログラムを書いています。ローカルネットワークでブロードキャストpingを送信しています。すべてのターゲットデバイスはpingブロードキャストに応答できます。実際、Wiresharkですべての応答を追跡しています。私の目標は、応答するすべてのステーションのIPアドレスを取得することです。

問題は、MicrosoftのAPIには、特定の時間間隔ですべての応答を記録するためのサポートが含まれていないことです。IcmpSendEchoのような関数は、最初の応答で戻るだけです(APIは複数のicmp応答を記録できると述べていますが)、これは既知の問題であり、ここでグーグルして検索すると、誰もがこれらの関数で同じ問題を報告します。

返信を取得するために低レベルになりすぎずに目標を達成するにはどうすればよいですか?Windowsは、ある種のicmp履歴の記録を保持していますか?どんな提案にも感謝します!

4

1 に答える 1

0
 1) First call FlushIpNetTable.
 2) Send the ping and ignore the response.
 3) Read the ARP table using the GetIpNetTable call.
于 2011-12-25T02:13:13.130 に答える