Kann keine Verbindung zum Webserver über Arduino herstellen

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.

Sie sagen, Sie brauchen die index.html , aber die Anforderungs-URL ist für eine test.html . Haben Sie auch versucht, über die IP auf den Server zuzugreifen, z. B.: 10.100.0.40/index.html ?
@DimKo auf IP 10.100.0.40 haben sie Drupal installiert. Wenn ich also diese IP anfordere, erhalte ich eine HTML-Ausgabe der index.html, aber ich möchte auf meinen Ordner zugreifen und die Informationen von test.htm abrufen.
Sie befinden sich im falschen IP-Bereich. Der Webserver ist auf 10.100.0.40 und Ihr Arduino ist 10.100. 5 .144 . Es gibt keine Route zum Gerät. Wenn Sie Internet haben, fordern Sie es stattdessen aus dem Internet und nicht intern an
Keine Elektronikfrage. Wird wohl geschlossen.

Antworten (1)

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.

Jeffrey, das Hauptproblem ist, dass ich keine Verbindung zum Webserver herstellen kann und ich nicht weiß, wie ich das bewerkstelligen soll, und ich bekomme wirklich Kopfschmerzen, da ich mich viele Stunden mit diesem Problem beschäftige.
Sie müssen nicht auf den Webserver zugreifen oder den Datenverkehr abhören. Sie können auf einem normalen PC im LAN einen Webserver (XAMPP, um nur einen zu nennen) installieren und arduino so einstellen, dass die Seite von diesem PC abgerufen wird. Sie werden im Protokoll sehen, was Arduino wirklich verlangt. Ich stimme Tobys bester Vermutung zu: fehlender Host-HTTP-Header.
@Axeman Ich habe gerade Wamp auf meinem PC installiert und seine Standardeinstellung auf IP: 127.0.0.1 Wenn ich über einen Beispielcode eine Verbindung zu dieser IP herstelle, kann ich nichts sehen, wenn ich 127.0.0.1 in meinem Browser anfordere.
Ich habe vor einiger Zeit einen Blog in dieser Richtung geschrieben: blog.wickeddevice.com/?p=245
Vergiss den Arduino. Hol dir einfach einen Raspberry Pi - Worum geht es in deiner These - Haare ausreißen vor Stress?
@vicatcu Ich habe dieses Problem bereits behoben, aber nicht auf der Webserverseite hat es mir Kopfschmerzen bereitet. Was ich getan habe, war, dass ich gerade einen VPS von einem Hosting-Provider gekauft habe, und ich habe jetzt 1 IP verfügbar und jetzt kann ich mich mit diesem VPS verbinden und tun, was ich will.