Go Down

Topic: Usare l'hostname al posto dell'ip è possibile? (Read 957 times) previous topic - next topic

mastergov

Ciao a tutti mi chiedevo, se era possibile chiamare, un sito con per l'hostname invece che per l'ip

esempio :

GET http://www.prova.com?value1=0000&value2=999 HTTP 1.0

cosi funzionerebbe? oppure prima devo usare la libreria ethernetDNS e risolvere prima l'0host in ip
e poi fare uno sprintf?




superlol


Ciao a tutti mi chiedevo, se era possibile chiamare, un sito con per l'hostname invece che per l'ip

esempio :

GET http://www.prova.com?value1=0000&value2=999 HTTP 1.0

cosi funzionerebbe? oppure prima devo usare la libreria ethernetDNS e risolvere prima l'0host in ip
e poi fare uno sprintf?





solitamente i DNS dovrebbero rigirarti sull'ip.

ma poi per gli http header non dovresto NON mandare l'host?

cioè solo
Code: [Select]
GET ?value1=0000&value2=999 HTTP 1.0
??

guarda gli header del tuo browser
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Marco Benini

Ciao,

nella nuova libreria Ethernet c'e' la gestione dei DNS.

Qui l'IDE completo
http://code.google.com/p/arduino/wiki/Arduino1

Qui il l'ultimo codice, in "new extension"
https://github.com/arduino/Arduino/tree/new-extension/libraries/Ethernet

Non l'ho provata ancora, per cui non so dirti se puoi utilizzarla con l'IDE Arduino 22 senza problemi.

Ciao,
Marco.


mastergov

si nel get non devo mettere anche l'host è solo GET /arduino?val1=22&val2=90 lo so era per farmi capire, perchè in cima al codice setto l'ip singolo del server esempio {192,168,23,1}
se gli metto l'host li si incricca e non compila ovviamente e siccome sto lavorando su dei server a pagamento con 1000 siti come minimo su un ip e suddivisi con i virtualhost di apache, e quindi con l'ip singolo nell'invio dei dati da arduino è impossibile che funzioni quindi devo usare l'hostname ma mi chiedevo come poter fare capito ora quale è il mio prob?


lesto

nella GET di solito si usa l'url relativo allo / (la root) del sito.

Per quanto riguarda il servizio DNS, esiste una libreria Ethernet modificata che permette questa configurazione. cerca DNS Ethernet nel forum inglese, però credo che sia basata sull'ethernet shield e non so su supporta la nuova arduino ethernet, anche se credo che con un poco di copia incolla del codice dovresti cavartela :-)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

mastergov

ehi super lesto, ma a che link  è quella conversazione ? perchè ho cercato ma sono un po confuse le info,
poi ho pensato ad una cosa cosi ma non funge ovviamente,

byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

byte ip[] = { 192,168,1,177 };
byte server[] = { 81,88,48,72 } ;
char Hostname[] = "www.prg.com";

ma poi a allo sprintf come gli dico di andare sull'host? cosi?
sprintf(buffer,Hostname "GET /fview.php?attiva=%d&reattiva=%d HTTP/1.0", sensorValue, sensorValue2);

non mi potresti dare una bozzetta cosi me la aggiusto? :>

lesto

la libreria si chiama EthernetDNS, ecco il link: http://gkaindl.com/software/arduino-ethernet

prima di tutto devi settare l'ip di un DNS server, ovvero quello che dal nome dell'host ti restituisce l'ip. Normalmente i router fanno anche da server DNS, quindi puoi dare l'ip del router (di solito 192.168.0.1, ma può variare, è quello che usi alla voce GATEWAY)
se il tuo DNS non lo supporta puoi usare i DNS gratuiti, come gli opendns: http://www.opendns.com/, i cui 2 IP sono 208.67.222.222 e 208.67.220.220

Poi quando devi cercare un host usi
DNSError resolveHostName(const char* hostName, byte ipAddr[4]);
hostname è il nome che devi risolvere, ipAddr è un array di byte di 4 dimensioni in cui verrà salvato l'IP

Per la sprintf, comunque, funziona esattamente come per i sensorValue, solo che al posto del %d (che significa "quì ci vuole un numero intero), ci metti il %s (che significa quì ci vuole una stringa). Per vedere altri formati & maggiori info: http://www.cplusplus.com/reference/clibrary/cstdio/scanf/
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy