Arduino Webserver mit DHCP und ohne ip-Ratespiel

OP #3362223
Lesenswert?

Hallo.
Nachdem es viele hervorragende Beispiele gibt, wie man einen Webserver 
z.B. mit Arduino realisieren kann, suche ich nach der Lösung eines 
klassischen Problems.
Die ip wird per DHCP vergeben. Das ist wohl die beste universelle 
Lösung.

>>> Wie kann der Benutzer über einen Browser auf den Embedded-Webserver zugreifen 
ohne die ip irgendwo abzulesen?

Kann man dem Arduino beibringen, z. B. beim DHCP-Zugriff einen Namen 
eintragen zu lassen? (ArduinoWebserver1.Blablabla)
Kann man per broadcat (UDP) durch einen Link aus einer Datei o. ä. den 
Emb-Ws erreichen, so dass dieser seine IP-Adresse als Link in einer 
Seite zurückschickt?

Irgendwie muss das doch lösbar sein.

Meine Fritz-Box reagiert ja auch auf www.fritz.box. Gut, die hat es 
leicht, hängt ja selbst dazwischen...

In diesem Sinne, hoffe auf Feedback.
Moderator Persönliche Seite #3362240
Lesenswert?

E. dM schrieb:
> Kann man dem Arduino beibringen, z. B. beim DHCP-Zugriff einen Namen
> eintragen zu lassen? (ArduinoWebserver1.Blablabla)

Man kann bei den meisten DHCP-Servern eine bekannte MAC-Adresse direkt 
an eine fest zu vergebende IP-Adresse binden.

> Meine Fritz-Box reagiert ja auch auf www.fritz.box.

Auch bei Deiner FritzBox als DHCP-Server kannst Du einstellen, dass die 
einmal vergebene IP-Adresse auch für alle Zukunft für dieses Gerät 
gelten soll.
Gast #3362280
Lesenswert?

das ist super... nur muss man dann immernoch die MAC-Adresse 
kennen/aufgeschrieben haben (incl. wiederfinden)/von den anderen 
unbekannten Geräten die gleichzeitig im Netz sind unterscheiden 
können...
das ist also blöd. Leider wohl nur durch Ordnung lösbar.
Moderator Persönliche Seite #3362317
Lesenswert?

??? schrieb:
> das ist super... nur muss man dann immernoch die MAC-Adresse
> kennen/aufgeschrieben haben (incl. wiederfinden)/von den anderen
> unbekannten Geräten die gleichzeitig im Netz sind unterscheiden
> können...

Unsinn. Warum willst Du sie Dir aufschreiben? Du musst sie dem 
DHCP-Server nur "aufschreiben", das heisst, in irgendeine 
Konfigurations-Datei schreiben oder über ein Menü eintragen.

Bei der FritzBox musst Du die MAC-Adresse noch nichtmals kennen. LAN 
anzeigen lassen und schon siehst Du das neue Gerät im Netz. Dann einfach 
der Fritzbox durch Klick mitteilen, dass sie zukünftig die vergebene 
IP-Adresse für dieses Gerät reservieren soll. Damit bekommt das Ding 
dann immer dieselbe. Fertig.
Moderator Persönliche Seite #3362354
Lesenswert?

E. dM schrieb:
> Ich möchte auf eine Anwebdung hinaus, in der ein Benutzer den WS
> (webserver) sozusagen auspackt, an sein Lan m. DHCP steckt und dann im
> Browser den WS findet, ohne vorher (!) die ip zu kennen.

Manche lokale DNS-Server (ich meine jetzt NICHT DHCP-Server) tragen den 
SMB-Namen eines Netzwerkgerätes automatisch in die lokale Domain ein. 
Das macht zum Beispiel auch die Fritzbox. Aber es gibt kein Verfahren, 
so etwas in jedem LAN zu erzwingen. Vergiss es also - geht nicht.

Hänge an Deine Anwendung einfach ein kleines Display, auf welchem die 
vergebene IP-Adresse ausgegeben wird. Der User kann sie dann dort 
ablesen und im Browser eintippen.
#3362376
Lesenswert?

Die Fritzbox sagt deinem PC über DHCP seine IP und auch den Nameserver 
den er benutzen soll. Nämlich sie selbst. Dadurch hat sie es leicht auf 
eine Nameserveranfrage nach www.fritz.box richtig zu antworten.

Ich sehe keine Möglichkeit dein Problem sicher zu lösen. Auch Broadcasts 
sind gefährlich. Wie willst du 2 gleiche Geräte im selben Netz 
auseinanderhalten?
OP #3362381
Lesenswert?

Ping geht nur, wenn man die ip kennt.
Broadcast geht angeblich nur bei UDP, nicht bei tcp.

Vielleicht ist die Lösung, den Arduino auf ein UDP-broadcast, den ein 
kleines Programm schickt, antworten zu lassen. Dann könnte er z.B. an 
die mitgesendete ip seine eigenen ip zurück schicken. Oder so ähnlich...
Wer kann das etwas genauer spezifizieren? Ich kenn mich mit ip, UDP und 
so nicht besonders gut aus.
OP #3362439
Lesenswert?

@Jürgen
Ich habe gerade gesehen, dass die Arduino Ethernet-lib UDP unterstützt.
Lösung:
- jedes Gerät hat eine interne ID vom Hersteller.
- Alle habe denselben UDP-Port XYZ, Herstellerspezifisch.
- Ein CMD-line-programm schickt einen Broadcast an den Port XYZ.
- Jedes Gerät antwortet mit seiner ID & ip.
- Das CMD-line-prg ruft den Systembrowser auf mit einem Instanz für 
jedes Gerät.
- Die einzelnen Geräte erscheinen mit ihrer index.htm und Ihrer ID.

Fertig, oder?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren