Gibt es eine Möglichkeit, das Verhalten der synchronen Windows API SendARP zu ändern?

8

Ich schreibe einen lokalen Netzwerk-Scanner unter Windows, um Online-Hosts mit IP-Hilfsfunktionen zu finden, was äquivalent zu nmap -PR , aber ohne WinPcap ist. Ich weiß SendARP blockiert und sendet eine ARP-Anfrage 3 mal, wenn der Remote-Host nicht antwortet, also verwende ich std::aync , um einen Thread für jeden Host zu erstellen, aber das Problem ist, ich möchte alle 20ms eine ARP-Anfrage senden, damit es nicht zu viel arp-Pakete in einem sehr sind kurze Zeit.

%Vor%

Zuerst kann ich dies tun, indem ich nach dem Start eines Threads Sleep(20) aufruft, aber sobald SendARP in diesen Threads ARP-Anfragen zurücksendet, wenn keine Antworten vom Remote-Host kommen, habe ich keine Kontrolle und sehe viele Anfragen in sehr kurzer Zeit (& lt; 10ms) in Wireshark, also meine Frage ist:

  1. Irgendeine Möglichkeit, SendARP asynchron zu machen?
  2. Wenn nicht, kann ich das gesendete Timing von SendARP in Threads steuern?
jfly 26.04.2017, 06:00
quelle

0 Antworten