www.mikrocontroller.net

Forum: PC-Programmierung [C, Winapi] Ping (via ICMP.DLL) über bestimmte IP versenden


Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
Ich habe mir ein Ping-Programm programmiert das über ICMP.DLL arbeitet, 
also mit dem Aufruf IcmpSendEcho. Nun wollte ich diesen Ping aber über 
eine bestimmte Netzwerkkarte versenden (es befinden sich 4 Stück im PC). 
Wenn man mit RAW-Sockets arbeitet kann man das ja über bind machen, aber 
über ICMP.dll habe ich jetzt noch nichts gefunden. Hat da jemand was 
parat, oder ist das damit einfach nicht möglich?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das dürfte von den IP-Adressen und Subnets abhängen, die für die 
Netzwerkkarten konfiguriert sind. Liegt die Ping-Zieladresse im Subnet 
einer der Netzwerkkarten, wird diese verwendet.
Interessanter bzw. wirrer wird die Angelegenheit, wenn für die 
Netzwerkkarten auch noch Router/Standardgateways konfiguriert sind.

Wenn allerdings alle vier Karten Adressen aus dem selben Subnet 
verwenden, dann wüsste ich auch nicht ad hoc, wie man da eine gezielt 
auswählen kann.

Wie sehen denn die Adressen aus?

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sie sind alle in einem anderen Subnetz.
LAN1: 192.168.0.1
LAN2: 192.168.1.1
LAN3: 192.168.2.1
LAN4: 192.168.3.1
Soweit ist es auch nicht problematisch. Doch was ich machen will ist, 
dass LAN1 LAN3 und LAN2 LAN4 anpingen soll. Der Rechner ist also mit je 
zwei Netzwerkkarten immer zusammen geschaltet. Hintergrund ist, dass mit 
nur einem Rechner die Kabel auf Unterbrechungen getestet werden sollen.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  Doch was ich machen will ist, dass LAN1 LAN3 und LAN2 LAN4 anpingen soll.

Wie soll das gehen, wo doch jeweils andere Subnetze verwendet werden?

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das geht vielleicht besser mit WinPCap, damit kann man beliebige Pakete 
auf ausgewählten Interfaces senden/empfangen.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, stimmt, aber ich kann sie ja anpingen da die Netzmaske 255.255.0.0 
ist.
Das Problem ist halt, dass wenn die Karten alle 192.168.0.1-4 hätten, 
dann läuft das alles über den Kernel und nicht mehr physikalisch über 
die LWL/Kupfer Leitungen.
Wenn du ne andere Idee hast wie man das lösen könnte immer her damit.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Routen entsprechend manipulieren und dann senden?

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timmo H. schrieb:
> Hintergrund ist, dass mit
> nur einem Rechner die Kabel auf Unterbrechungen getestet werden sollen.

für sowas gibts ja nu wirklich einfachere Lösungen.
Die teure ist mit sicherheit ein Netzwerk-Analyse-Werkzeug.

Wenns nur um Unterbrechung geht, bau halt zwei Rj45 Buchsen auf eine 
kleine Paltine und löt an die eine Seite den MinusPol und auf die andere 
Seite 8 LEDs+Widerstände dann an Pluspol.

Hardwarekosten 2-5€
Zeit für Aufbau höchstens 1-2h (je nach Löterfahrung)

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum muss es denn ICMP sein, mach das ganze noch als UDP. Dann kannst 
du auch die absender IP festelgen (bin mir aber nicht sicher ob das 
gleichbedeutetd mit dem Interface ist)

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vlad Tepesch schrieb:
> für sowas gibts ja nu wirklich einfachere Lösungen.
> Die teure ist mit sicherheit ein Netzwerk-Analyse-Werkzeug.
>
> Wenns nur um Unterbrechung geht, bau halt zwei Rj45 Buchsen auf eine
> kleine Paltine und löt an die eine Seite den MinusPol und auf die andere
> Seite 8 LEDs+Widerstände dann an Pluspol.
>
> Hardwarekosten 2-5€
> Zeit für Aufbau höchstens 1-2h (je nach Löterfahrung)
Das soll aber in einem bestehenden Netz mit eigener Testsoftware 
integriert werden.

>warum muss es denn ICMP sein, mach das ganze noch als UDP. Dann kannst
>du auch die absender IP festelgen (bin mir aber nicht sicher ob das
>gleichbedeutetd mit dem Interface ist)
ICMP war erstmal am einfachsten zu programmieren. Wenn du eine einfache 
Lösung per UDP past, immer her damit.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ICMP war erstmal am einfachsten zu programmieren. Wenn du eine einfache
> Lösung per UDP past, immer her damit.
wo ist jetzt das Problem mit UDP, da sind in jeden Doku beispiele drin. 
Finde ich wesentlich einfacher als mit ICMP - bis jetzt kannte ich nicht 
mal die API um ein Ping zu erzeugen.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, wie gesagt ICMP ist verdammt einfach. Eigentlich nur ein Befehl, 
kein Rumgefrickel mit Sockets usw. nur eben die Problematik dass man 
nicht sagen kann über welches Interface das ganze rausgehen soll. Ich 
werde nochmal gucken ob ich da auf die schnelle was mit UDP programmiert 
bekomme.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ja, stimmt, aber ich kann sie ja anpingen da die Netzmaske 255.255.0.0
> ist.

Dann sind alle vier Netzwerkkarten im selben Subnet.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, dann. Wie gesagt ich bin eben noch auf der Suche nach einer Lösung.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und warum geht es nicht mit Setzen der Routen?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.