не могу подключиться к серверу через ардуино

У меня следующая проблема, и я просто не могу понять, как ее исправить. В настоящее время я работаю над прототипом для моей диссертации. Для этого прототипа мне нужен Arduino для подключения к Интернету. У меня есть Arduino Uno и Arduino Ethernet Shield.

Проблема в том, что я не могу подключиться к веб-серверу моей компании, где я сейчас прохожу стажировку.

Веб-сервер имеет другой IP-адрес, чем локальная сеть, над которой я работаю. Когда я набираю в своем командном окне ipconfig /all, я получаю следующую информацию:

MAC-адрес: 64-31-50-25-FE-C7

IPv4-адрес: 10.100.5.144

маска подсети: 255.255.248.0

шлюз: 10.100.0.1

IP-адрес, на котором установлен веб-сервер: 10.100.0.40.

Когда я запрашиваю страницу с помощью GET и хочу получить файл index.html, который хранится в моей папке www на веб-сервере (см. ниже), я получаю ошибку 404.

\efocus02\www\evs\navid\navid.mirzaie.milani\webroot

Это URL-адрес, который я запрашиваю: http://navid.mirzaie.milani.navid.efocus02.efocus.local/test.html

Есть ли кто-нибудь, кто может помочь мне, как я могу понять эту проблему, я был бы очень, очень признателен.

Вы говорите, что вам нужен index.html , но URL-адрес запроса относится к test.html . Кроме того, вы пытались получить доступ к серверу по IP, например: 10.100.0.40/index.html ?
@DimKo на IP-адресе 10.100.0.40 они установили Drupal, поэтому, когда я запрашиваю этот IP-адрес, я получаю HTML-вывод index.html, но я хочу получить доступ к своей папке и получить информацию о test.htm.
Вы находитесь в неправильном диапазоне IP-адресов. Веб-сервер находится на 10.100.0.40, а ваша Arduino — на 10.100. 5 .144 . Маршрута к устройству нет. Если у вас есть интернет, запросите его из Интернета, а не внутри страны.
Вопрос не по электронике. Скорее всего закроют.

Ответы (1)

Поскольку вы получаете ошибку 404, Arduino должен быть правильно подключен к сети и иметь доступ к веб-серверу.

(Мое лучшее предположение, учитывая ограниченную информацию, заключается в том, что веб-сервер использует виртуальный хостинг, а ваш Arduino не отправляет HTTP-заголовок «Host:»).

Чтобы отладить проблему, вам нужно увидеть, что происходит на сетевом уровне. Либо добавьте отладку в свою HTTP-библиотеку Arduino, либо обнюхайте сеть с помощью ПК.

Я бы рекомендовал использовать ПК. Используйте концентратор Ethernet (не коммутатор) или совместное использование Arduino через ПК, а затем запустите WireShark для прослушивания сетевых пакетов. Убедитесь, что Arduino действительно запрашивает страницу, о которой вы думаете. Проверьте возвращаемые коды ответов.

Воссоздайте HTTP-запрос на ПК, отправьте точно такие же данные — получите тот же ответ 404? Вы можете сделать это с помощью telnet или более мощного инструмента, такого как curl или wget.

Джеффри, основная проблема в том, что я не могу подключиться к веб-серверу, и я не знаю, как это сделать, и у меня действительно болит голова, так как я занят этой проблемой в течение многих часов.
Вам не нужно обращаться к веб-серверу или прослушивать трафик. Вы можете установить на обычный ПК в локальной сети веб-сервер (например, XAMPP) и настроить Arduino для получения страницы с этого ПК. Вы увидите в журнале, что на самом деле спрашивает Arduino. Я согласен с лучшим предположением Тоби: отсутствует http-заголовок хоста.
@Axeman Я только что установил wamp на свой компьютер, и его IP-адрес по умолчанию: 127.0.0.1, когда я подключаюсь к этому IP-адресу через пример кода, я ничего не вижу, когда запрашиваю 127.0.0.1 в своем браузере.
Некоторое время назад я написал об этом в блоге: blog.wickeddevice.com/?p=245 .
Забудьте об Ардуино. Просто купите Raspberry Pi. О чем ваш тезис — вырывать волосы от стресса?
@vicatcu я уже исправил эту проблему, но не со стороны веб-сервера, это вызвало у меня головную боль. Что я сделал, так это то, что я только что купил VPS у хостинг-провайдера, и теперь у меня есть 1 доступный ip, и теперь я могу подключиться к этому vps и делать все, что захочу.