Ich habe folgendes Problem und weiß einfach nicht wie ich es beheben kann. Ich arbeite gerade an einem Prototypen für meine Diplomarbeit. Für diesen Prototyp brauche ich mein Arduino, um eine Verbindung zum Internet herzustellen. Ich habe ein Arduino Uno und ein Arduino Ethernet Shield.
Das Problem ist, dass ich mich nicht mit dem Webserver meiner Firma verbinden kann, wo ich gerade ein Praktikum absolviere.
Der Webserver hat eine andere IP als das LAN, an dem ich arbeite. Wenn ich in mein Befehlsfenster ipconfig /all eingebe, erhalte ich folgende Informationen:
MAC-Adresse: 64-31-50-25-FE-C7
IPv4-Adresse: 10.100.5.144
Subnetzmaske: 255.255.248.0
Gateway: 10.100.0.1
Die IP-Adresse, auf der der Webserver installiert ist, lautet: 10.100.0.40.
Wenn ich eine Seite mit GET anfordere und die Datei index.html abrufen möchte, die in meinem www-Ordner des Webservers gespeichert ist (siehe unten), erhalte ich den 404-Fehler.
\efocus02\www\evs\navid\navid.mirzaie.milani\webroot
Dies ist die URL, die ich anfordere: http://navid.mirzaie.milani.navid.efocus02.efocus.local/test.html
Gibt es jemanden, der mir helfen kann, wie ich dieses Problem lösen kann, ich würde es wirklich sehr schätzen.
Da Sie einen 404-Fehler erhalten, muss der Arduino korrekt mit dem Netzwerk verbunden sein und auf den Webserver zugreifen können.
(Meine beste Vermutung, angesichts begrenzter Informationen, ist, dass der Webserver Virtual Hosting verwendet und Ihr Arduino keinen "Host:" HTTP-Header sendet).
Um das Problem zu debuggen, müssen Sie sehen, was auf Netzwerkebene vor sich geht. Fügen Sie Ihrer Arduino-HTTP-Bibliothek entweder Debugging hinzu oder schnüffeln Sie mit einem PC im Netzwerk.
Ich würde empfehlen, einen PC zu verwenden. Verwenden Sie einen Ethernet-Hub (keinen Switch) oder teilen Sie die Verbindung des Arduino über einen PC und führen Sie dann WireShark aus , um die Netzwerkpakete zu schnüffeln. Überprüfen Sie, ob der Arduino wirklich die Seite anfordert, die Sie für richtig halten. Überprüfen Sie die zurückkommenden Antwortcodes.
Erstellen Sie die HTTP-Anfrage auf einem PC neu, senden Sie genau die gleichen Daten - erhalten Sie die gleiche 404-Antwort? Sie können dies mit Telnet oder mit einem leistungsfähigeren Tool wie curl oder wget tun.
DimKo
Navid
Piotr Kula
Brian Carlton