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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.