Forum: PC-Programmierung ARP Cache löschen


von Leon (Gast)


Lesenswert?

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.

von Christian M. (Gast)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

einfach die passende API Funktion über unmanage code aufrufen

https://msdn.microsoft.com/de-de/library/windows/desktop/aa365905(v=vs.85).aspx

von Leon (Gast)


Lesenswert?

Super vielen Dank. Das Löschen der ARP Einträge funktioniert nun.

von Leon (Gast)


Lesenswert?

Was ich allerdings noch bräuchte ist, herauszufinden welche ARP Eintrage 
von welchem Netzwerkadapter (Nummer).

von Peter II (Gast)


Lesenswert?

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

von Jack (Gast)


Lesenswert?

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.

von Leon (Gast)


Lesenswert?

Ah ok. Ich verwende den Lwip-Stack.

von Leon (Gast)


Lesenswert?

Für einen Gratuitous ARP welche IP Adresse und welche Hardware MAC 
Adresse muss für den Sendevorgang übergeben werden?

von S. R. (svenska)


Lesenswert?

Die neue MAC-Adresse und die aktive IP-Adresse. Du willst dem PC 
schließlich mitteilen, wie er dein Gerät erreichen kann.

von Leon (Gast)


Lesenswert?

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?

von Michael S. (e500)


Lesenswert?

Nur mal so aus Interesse: Weshalb wechselt denn der µC die MAC-Adresse?
Ist ja kein gewöhnlicher Vorgang ...

von Leon (Gast)


Lesenswert?

In der Produktion soll die MAC-Adresse gesetzt werden. In der 
Entwicklungsphase bräuchte ich diesen Gratious ARP nicht.

von Leon (Gast)


Lesenswert?

Das Löschen der Windows ARP Tabelle mit der Funktion FlushIpNetTable 
funktioniert auch nicht.

von Leon (Gast)


Lesenswert?

Oben habe ich geschrieben dass das Löschen mit der Funktionion 
funktioniert. Dies ist leider nicht so hab mich da vertan.

von Peter II (Gast)


Lesenswert?

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?

von Leon (Gast)


Lesenswert?

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?

von S. R. (svenska)


Lesenswert?

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
Noch kein Account? Hier anmelden.