Loading...
Pages: [1]   Go Down
Author Topic: Aduino Ethernet Netzwerküberwachung  (Read 244 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

Ich brauche Hilfe bei der Umsetzung einer Netzwerküberwachung!

Wir haben einen File-Server auf dem die Daten der Familie gespeichert sind. Dieser Läuft aktuell Tag und Nacht.
Ich möchte mit meinem Adrduino und Ethernet Shield das Netzwerküberwachen und so bald ein Gerät im Netzwerk vorhanden ist den Server starten und auch wieder runterfahren. Das runterfahren und starten funktioniert bereits.

Die Überwachung würde ich gerne per Ping durchführen. Der Arduino soll die Geräte anpingen und das Ergebnis auswerten. Leider konnte ich bisher keine Möglichkeit zum Senden eines Ping Signals finden! Ich hoffe Ihr könnt mir weiter helfen.

mfg

Chris

Logged

Chemnitz/Saxony/Germany
Offline Offline
Jr. Member
**
Karma: 0
Posts: 89
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Du hast nach Arduino und Ping gegoogled?

Google mal nach Arduino und ICMP.
Logged

Offline Offline
Edison Member
*
Karma: 18
Posts: 1295
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ping oder ICMP ist sogar schon eine "Schicht" zu hoch. Denn viele Geräte blocken auch pings ganz gerne (Stichwort Personal Firewall).
Es reicht aber schon ein erfolgreicher ARP-Request aus. Zumindest, wenn sich die Geräte im gleichen Netz befinden.
Bei einem ARP-Request (der im übrigen einem lokalen Ping immer vorausgeht) wird per Broadcast gefragt, welcher Host im lokalen Netz auf die (zu pingende) IP (x.x.x.x) reagiert. Der betroffene Host antwortet dann auf diesen Request mit seiner MAC-Adresse, an die dann die weitere Kommunikation erfolgen kann.
Der Vorteil ist, ARP kann nicht geblockt werden, da es integraler Bestandteil der lokalen Netzwerk-Kommunikation ist.

Mario.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Super Danke. Ping geht so weit! Gibts für ARP auch eine Lib?

Jetzt habe ich nur noch folgendes Problem ich bin ein wenig zu Doof um das mit den Bytes zu verstehen. Bräuchte da mal einen denk Anstoß.

Ich habe die IP Adresse ja in Byte Form: byte pingAddr[] = {192,168,0,100};
jetzt möchte ich die letzte Zahl ja hochlaufen lassen bis 150. Wie stelle ich das am besten an?
« Last Edit: March 17, 2013, 12:10:42 pm by CSchepelmann » Logged

Wien
Online Online
God Member
*****
Karma: 9
Posts: 773
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

for (byte n=100; n<151; n++) {
  pingAddr[3] = n;
  ......
  ......
}

gruß stefan
« Last Edit: March 17, 2013, 12:44:48 pm by Eisebaer » Logged

Wien
Online Online
God Member
*****
Karma: 9
Posts: 773
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

müßte doch eigentlich auch gehen:

for (pingAddr[3]=100; pingAddr[3]<151; pingAddr[3]++)

oder?
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 69
Posts: 3256
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Gibts für ARP auch eine Lib?

ARP wird nicht im Arduino gemacht, sondern direkt im WizNet-Chip, also: nein, es gibt keine Bibliothek und wird auch keine geben.

Übrigens: In Deinem Netz gibt's bestimmt einen DHCP-Server (der vergibt die IP-Adressen), meist ist der im Router eingebaut. Die meisten Router haben eine Administrationsseite, auf welcher die vergegebenen Leases (also die benutzten IP-Adressen) aufgelistet werden. Wenn Du Dir diese greifst, kommst Du ohne das Pingen an die gewünschte Information und es funktioniert auch, wenn auf einem Rechner der sog. Echo-Reply (also die Ping-Antwort) per Firewall unterbunden wird.
Logged

Offline Offline
Edison Member
*
Karma: 18
Posts: 1295
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ARP wird nicht im Arduino gemacht, sondern direkt im WizNet-Chip, also: nein, es gibt keine Bibliothek und wird auch keine geben.
Wenn es ein WIZnet5100 ist, dann hast Du recht, wobei man ggf. trotzdem an die Informationen kommen könnte. Ist es ein ENC28J60 dann macht der Arduino ARP und das Ganze wäre relativ einfach.
Logged

Pages: [1]   Go Up
Print
 
Jump to: