Forum: Mikrocontroller und Digitale Elektronik Arduino Webserver mit DHCP und ohne ip-Ratespiel


von E. d. (elektrosepp)


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.

von Frank M. (ukw) (Moderator) Benutzerseite


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.

: Bearbeitet durch Moderator
von ??? (Gast)


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.

von Frank M. (ukw) (Moderator) Benutzerseite


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.

von E. d. (elektrosepp)


Lesenswert?

Klasse wieviele Antworten es bereits gibt.

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.

von Frank M. (ukw) (Moderator) Benutzerseite


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.

von Max D. (max_d)


Lesenswert?

Alternativ ein Programm (link reicht ja eigentlich) mitliefern das den 
Server per broadcast oder ping sucht....

von Jürgen (jliegner)


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?

: Bearbeitet durch User
von Maxx (Gast)


Lesenswert?

Frank M. schrieb:
> Aber es gibt kein Verfahren,
> so etwas in jedem LAN zu erzwingen. Vergiss es also - geht nicht.

Zero-Config aka mDNS-SD aka Aloha

von E. d. (elektrosepp)


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.

von E. d. (elektrosepp)


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?

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.