Hi, ich suche in C# eine Möglichkeit den ARP Cache zulöschen. Durch ein C# Tool kann die MAC Adresse von einem Mikrocontroller verändert werden. Sobald ich via Ethernet Daten auslesen möchte erhalte ich keine Rückantwort vom Mikrocontroller über das Netzwerk. Wenn der ARP Cache in der Kommandozeile gelöscht wird dann funktioniert die Netzwerkkommunikation.
Ohne C# zu kennen: Script aufrufen mit Execute, Run oder wie das in C# heisst? Aber wozu in aller Welt sollte man dauernd die MAC-Adresse wechseln? Gruss Chregu
einfach die passende API Funktion über unmanage code aufrufen https://msdn.microsoft.com/de-de/library/windows/desktop/aa365905(v=vs.85).aspx
Was ich allerdings noch bräuchte ist, herauszufinden welche ARP Eintrage von welchem Netzwerkadapter (Nummer).
Leon schrieb: > Was ich allerdings noch bräuchte ist, herauszufinden welche ARP Eintrage > von welchem Netzwerkadapter (Nummer). hier die Übersicht der API aufrufe https://msdn.microsoft.com/de-de/library/windows/desktop/aa366071(v=vs.85).aspx
Der Fehler ist auf der Mikrocontroller-Seite. Beim Wechsel der MAC-Adresse, sollte der Mikrocontroller ein Gratuitous ARP senden um die Caches aller beteiligten Netzwerkgeräte zu aktualisieren.
Für einen Gratuitous ARP welche IP Adresse und welche Hardware MAC Adresse muss für den Sendevorgang übergeben werden?
Die neue MAC-Adresse und die aktive IP-Adresse. Du willst dem PC schließlich mitteilen, wie er dein Gerät erreichen kann.
Was meinst du mit aktive IP-Adresse? Die IP-Adresse vom Mikrocontroller oder vom Host? Was das Senden betrifft, der Gratuitouse ARP funktioniert bei mir nicht. Gibt es möglicherweise noch irgendwelche Dinge die ich vorher tun müsste?
Nur mal so aus Interesse: Weshalb wechselt denn der µC die MAC-Adresse? Ist ja kein gewöhnlicher Vorgang ...
In der Produktion soll die MAC-Adresse gesetzt werden. In der Entwicklungsphase bräuchte ich diesen Gratious ARP nicht.
Das Löschen der Windows ARP Tabelle mit der Funktion FlushIpNetTable funktioniert auch nicht.
Oben habe ich geschrieben dass das Löschen mit der Funktionion funktioniert. Dies ist leider nicht so hab mich da vertan.
Leon schrieb: > Oben habe ich geschrieben dass das Löschen mit der Funktionion > funktioniert. Dies ist leider nicht so hab mich da vertan. gibt es eine Fehlermeldung? Richtiges Interface gewählt?
Ja hab den Fehler gesehen. Die Interfacenummer ist diesmal eine andere. Jetzt wird der ARP Cache gelöscht. Weisst du wie man die Interfacenummer von der MAC-Adresse heraufinden kann?
Leon schrieb: > Was meinst du mit aktive IP-Adresse? Die IP-Adresse vom Mikrocontroller > oder vom Host? Der Mikrocontroller wird ja sowohl eine MAC-Adresse als auch eine IP haben, wenn du ihn konfigurierst. Sonst gäbe es die Problematik nicht. Wenn der Controller jetzt eine neue MAC eingepflanzt bekommt, sendet er einen gratituous ARP mit seiner IP-Adresse (er ist ja noch immer der gleiche), aber mit seiner "neuen" MAC-Adresse. Überlege dir mal, warum man ARP überhaupt macht, was die Tabelle enthält, und wer warum wessen Tabelle ändern will. Ein gratituous ARP ist an sich nur eine Antwort ohne vorhergehende Frage, um proaktiv auf veränderte Umstände hinzuweisen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.