Stránka 1 z 1

Ethernet modul ENC28J60 se nespojí s webem na Endora.cz

Napsal: 13 úno 2020, 15:41
od fix
zdravím všechy

mám problém se spojením arduina s webem (PHP) na Endora.cz
kód zkráceně (to důležitý)

#include <UIPEthernet.h>
#include <SPI.h>

byte mac[] = { 0x70, 0x4F, 0x57, 0x77, 0x7E, 0x50 }; // Mac adresa zařízení
EthernetClient client;
int nepripojeno=0; // počet neúspěšných připojení k internetu
int samoreset=0; //
int TimeOut=5000;
char server[] = "88.86.120.160";

Ethernet.begin(mac);

if (client.connect(server, 80))
{

client.println("GET / HTTP/1.0");
client.println("Host: balisong.cz");
client.println("Connection: Close");
client.println();

}



problém je v tom, že pokud za IP adresu dosadím google.com, tam mi to aspoň vypíše stránku, že s chybou 400.
IP adresu serveru 88.86.120.160 jsme ověřoval u poskytovatele, stejně jako správnost Hostu.

Nevíte někdo co by mohlo být špatně. Řešil jsem to s podporou ohledně správnosti IP adres.

Děkuji mnohokrát.

Re: Ethernet modul ENC28J60 se nespojí s webem na Endora.cz

Napsal: 13 úno 2020, 16:04
od pavel1tu
A neměl by být ten server "balisong.cz" ?

Re: Ethernet modul ENC28J60 se nespojí s webem na Endora.cz

Napsal: 13 úno 2020, 18:11
od jankop
pavel1tu píše:
13 úno 2020, 16:04
A neměl by být ten server "balisong.cz" ?
Ano, nepochybně tam má být

Kód: Vybrat vše

char server[] = "balisong.cz";
Adresa 88.86.120.160 je adresa jednoho z hostingových serverů

Kód: Vybrat vše

C:\Users\Pavel>ping -a 88.86.120.160
Příkaz PING na srv71.endora.cz [88.86.120.160] 
Odpověď od 88.86.120.160: bajty=32 čas=33ms TTL=54

Re: Ethernet modul ENC28J60 se nespojí s webem na Endora.cz

Napsal: 13 úno 2020, 18:38
od fix
To jsem měl napsat, že jsem to s tím taky zkoušel a vysledek žádny. Zajímavy je, že kdyz jsem servwr dal http://balisong.cz tak se to tvářilo, že se to spojilo se serverem ale ten neodpověděl 😩

Re: Ethernet modul ENC28J60 se nespojí s webem na Endora.cz

Napsal: 13 úno 2020, 19:11
od jankop
Ještě se mi zdá neúplná ta hlavička. Požadavek GET bych čekal ve tvaru:
GET /něco.php HTTP/1.1
...
...
kde za GET je požadovaný soubor nebo program včetně cesty.

Re: Ethernet modul ENC28J60 se nespojí s webem na Endora.cz

Napsal: 13 úno 2020, 19:58
od fix
Jj ani na GET /zapis.php?zapis=1 to nic nedela. Kdyz by byla spatna cesta tak ny to melo vypsat aspon E404 stranka nenalezena.

Re: Ethernet modul ENC28J60 se nespojí s webem na Endora.cz

Napsal: 14 úno 2020, 11:39
od jankop
Testovat vlastnosti webového serveru lze i Telnetem. Já jsem použil Hercules
https://www.hw-group.com/cs/software/ap ... ules-setup
Jak vidíš, balisong.cz odpovídá na tvoji (červenou) hlavičku dotazu kódem 200 OK. Pokud udělám totéž s google.cz, tak dostanu kód 404.
Pokud použiješ GET / HTTP/1.0 , server okamžitě po odeslání požadavku uzavře spojení, bez ohledu na parametr Connection:
Pokud použiješ GET / HTTP/1.1 , server uzavře nebo nechá otevřené spojení s ohledem na parametr Connection: Close nebo Keep-Alive.
To je správné chování podle standardu a popisuji to jen pro představu, že možnosti parametrizací hlavičky požadavku jsou široké a mnohdy docela komplikované.
Můj závěr je někde jinde. Já si myslím, že spojení navážeš, server normálně odpovídá, ale ty prostě jeho odpověď nezpracuješ. Buď dík nějakému zpoždění následující program nestačí odpověď už zachytit, nebo naopak, "odposlech serveru" skončí dřív, než server stačil odpovědět. Holt to je tak, když zveřejníš jen kusý výsek programu.
Mimochodem, asi by mělo být možné použít Hercules jako server a Arduinem se k němu připojovat. Sice jsem to nikdy nezkoušel, ale v principu by to mohlo pomoci.