Arduino Forum

International => Italiano => Software => Topic started by: er_like_no_other on Jul 05, 2013, 01:38 pm

Title: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 05, 2013, 01:38 pm
ciao a tutti
da qualche giorno ho tra le mani una WiFi shield, ho già fatto l'aggiornamento del firmware per l'IDE 1.0.5 e provando gli esempi funziona..
al momento non ho alcun progetto in mente ma mi piacerebbe impare ad usarla bene, l'ho presa un po' come quando ho preso il primo arduino un paio di anni fà, avevo solo idea di cosa fosse, ma non avevo idea di cosa potevo farci :)

la mia idea sarebbe quella di comunicare con qualche social network ma è da vedere la fattibilità.. negli ultimi giorni ho letto un bel po' di topic nel forum italiano e non a riguardo, quello che ho capito è che mi mancano un po' le competenze riguardo la struttura delle reti e dei sistemi di comunicazione... poi ho visto che molti social network per chiamare le api usano l'HTTPS che però non è supportato da arduino e per cui bisognerebbe ricorrere ad altri supporti...

ma partendo dall'inizio, il processo di connessione al WiFi è sempre quello e l'ho capito, quello che non capisco è il funzionamento delle richieste HTTP, ho provato l'esempio WiFiWebClient che mi scarica tutto il codice HTML della pagina di google che cerca "arduino", ma se io non volessi accedere a google ma ad una qualsiasi pagina web come dovrei fare? per esempio se io volessi accedere alla mia pagina facebook devo per forza passare per le api?
chiaro che se non passo per le api e se cambiano la grafica del sito poi mi perdo nella pagina, però intanto per provare va bene :)

per il momento mi piacerebbe capire questo, poi vediamo se riesco a fare progressi ;)
grazie in anticipo!
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 05, 2013, 04:20 pm
Quote
se io volessi accedere alla mia pagina facebook devo per forza passare per le api?

no, ma se ti sgamano ti bannao l'account. Quindi sì.  :smiley-mr-green:

Quote
se cambiano la grafica

no, se cambiano i nomi dei form html. Le api non cambiano mai.

In oltre sicuramente per le ichieste http usano HTTPS (quel s sta per over SSH), protocollo che non credo sia implementabile sulla UNO, o almenbo non l'ho mai visto. La stessa cosa probabilmente vale per le API. In pratica sei fregato in partenza, se non usi un pc/altro che fa da ponte
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 05, 2013, 04:23 pm

Quote
se io volessi accedere alla mia pagina facebook devo per forza passare per le api?

no, ma se ti sgamano ti bannao l'account. Quindi sì.  :smiley-mr-green:

ma se per esempio io voglio solo vedere quanti "likes" ho sulla mia pagina facebook o quanti followers ho su twitter posso farlo anche senza fare il login, come ho scaricato tutto il codice HTML della pagina di google non posso farlo anche su una pagina qualsiasi?
grazie
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 05, 2013, 04:30 pm
sì esattamente. da http://en.wikipedia.org/wiki/GET_%28HTTP%29#Request_methods

per richiedere la pagina index.html nella root del server www.example.com, ti conneccti via TCP alla porta 80 o 8080 o 8000 di www.example.com e mandi la richiesta get
Code: [Select]
GET /index.html HTTP/1.0
Host: www.example.com

seguita da 2 a capo. (oltre ad Host ci possono essere altri header, vedi il link e cerca su google quello che ti interessa, anche intercettare le get dei browser è interessante)

poi a quel punto il server risponde con l'header di risposta, 2 a capo, l'html della pagina, ed infine chiude la connessione (se HTTP/1.0) o resta in attesa della prossima get (se HTTP/1.1)

esempio di risposta:
Code: [Select]
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Etag: "3f80f-1b6-3e1cb03b"
Content-Type: text/html; charset=UTF-8
Content-Length: 131
Connection: close

<html>
<head>
  <title>An Example Page</title>
</head>
<body>
  Hello World, this is a very simple HTML document.
</body>
</html>
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 05, 2013, 04:38 pm
Bello :) Grazie mille della risposta! Appena possibile provo! ;)
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 05, 2013, 07:34 pm
ok provando con facebook questo codice:
Code: [Select]
#include <SPI.h>
#include <WiFi.h>

char ssid[] = "Alice-54464281";
char pass[] = "xxxxxxx";
int keyIndex = 0;          

int status = WL_IDLE_STATUS;

char server[] = "www.facebook.com";    // name address for Google (using DNS)

WiFiClient client;

void setup() {
 Serial.begin(9600);
 while(Serial.available()==0){}
 while (WiFi.status() == WL_NO_SHIELD) {
   Serial.println("WiFi shield not present");
   delay(1000);
 }
 
 while (status != WL_CONNECTED) {
   Serial.print("Attempting to connect to SSID: ");
   Serial.println(ssid);
  status = WiFi.begin(ssid, pass);
    delay(10000);
 }
 Serial.println("Connected to wifi");
 printWifiStatus();
 
 Serial.println("\nStarting connection to server...");

 if (client.connect(server, 80)) {
   Serial.println("connected to server");

   client.println("GET /vicenza.thunders HTTP/1.0");
   client.println("Host: www.facebook.com");
   client.println("Connection: close");
   client.println();
 }
}

void loop() {
 while (client.available()) {
   char c = client.read();
   Serial.write(c);
   if(c=='>'|| c==';')
   Serial.println("");
 }

 if (!client.connected()) {
   Serial.println();
   Serial.println("disconnecting from server.");
   client.stop();

   while(true);
 }
}


void printWifiStatus() {
 Serial.print("SSID: ");
 Serial.println(WiFi.SSID());

 IPAddress ip = WiFi.localIP();
 Serial.print("IP Address: ");
 Serial.println(ip);

 long rssi = WiFi.RSSI();
 Serial.print("signal strength (RSSI):");
 Serial.print(rssi);
 Serial.println(" dBm");
}


mi risponde male dicendo che i P3P non sono supportati (non ho idea di cosa voglia dire  :smiley-roll-blue: )
Code: [Select]

Attempting to connect to SSID: Alice-54464281
Connected to wifi
SSID: Alice-54464281
IP Address: 192.168.1.14
signal strength (RSSI):-78 dBm

Starting connection to server...
connected to server
HTTP/1.0 302 Found
Location: http://www.facebook.com/unsupportedbrowser
P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
X-Content-Type-Options: nosniff
Set-Cookie: datr=UQPXUWBwrmKBwA1VCCIkvGvm;
expires=Sun, 05-Jul-2015 17:33:05 GMT;
path=/;
domain=.facebook.com;
httponly
Content-Type: text/html;
charset=utf-8
X-FB-Debug: M/qRpghwpXOBpepnxcIwKlRa7yDHHsP/u5/pu4HJtzY=
Date: Fri, 05 Jul 2013 17:33:05 GMT
Connection: close
Content-Length: 0


disconnecting from server.


quindi devo arrendermi a cercare di usare le api? :smiley-roll-sweat:

[EDIT] Cancellato password dal sketch. Ciao Uwe[/EDIT]
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 06, 2013, 12:02 am
sto notando che su buona parte dei social network questo metodo non funziona, su instagram e twitter mi viene l'errore "301 Moved Permanently" e su facebook quello che ho scritto prima... non so se sbaglio io qualcosa, magari il nome del server :smiley-roll-blue: o se effettivamente non posso accedere a quelle pagine, il fatto che sono in HTTPS comporta che non posso accedervi?
con youtube che non è in HTTPS va, ma anche instagram non è HTTPS eppure non ci entro...

mi sa che mi tocca fare come si fa con la libreria twitter, cioè abilitare una applicazione sul mio twitter ed ottenere un token e con quello si possono fare un po' di cose.. visto che le api sono inacessibili usando solo arduino per via dell'HTTPS
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 06, 2013, 01:57 am
anche se le pagine sono fornite in HTTP, TUTTE le autenticazoni sono eseguite via HTTPS.

BTW la risposta che ottieni è perchè l'header che fornisci è troopo scarno (se vedi gli header della risposta da qualche parte ho visto "unsupported browser")

un sito che mostra i tuoi header: http://www.lammertbies.nl/comm/info/browser-header-checker.html

ti posto i miei, per compararli:

Quote
Host   www.lammertbies.nl
User-Agent   Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0
Accept   text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language   en-US,en;q=0.5
Accept-Encoding   gzip, deflate
Connection   keep-alive


per il resto wikipedia, https://en.wikipedia.org/wiki/List_of_HTTP_header_fields
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 06, 2013, 02:05 am
scusa l'ulteriore domanda, ma le mie conoscienze in questo campo sono molto limitate, come faccio a cambiare l'header?
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 06, 2013, 11:05 am
intendi del tuo browser? con dei plugin.

Intendi con arduno? li aggiungi!
host:blabla.com
è un header, e come vedi gli header che ti ho postato sono esattamente come spediti, puoi farne copia incolla :)

se non sei convinto, wireshark e passa la paura!!
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 06, 2013, 02:27 pm
sto provando così:
Quote

  if (client.connect(server, 80)) {
    Serial.println("connected to server");

    client.println("GET /vicenza.thunders HTTP/1.0");
    client.println("Host: www.facebook.com");
    client.println("User-Agent: Mozilla/5.0  (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36");
    client.print("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/"); client.println("*;q=0.8");
    client.println("Accept-Language: en-US,en;q=0.8");
    client.println("Accept-Encoding: gzip,deflate,sdch");
    
    client.println("Connection: close");
    client.println();
  }



ma non ricevo risposta, cosa sto sbagliando?  :smiley-roll-blue:
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 06, 2013, 03:35 pm
2 "a capo" alla fine, quindi serve un altro
Code: [Select]
client.println();
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 06, 2013, 03:55 pm
ancora niente :smiley-sad-blue:
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Jul 07, 2013, 12:30 am
X iscrizione
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 07, 2013, 12:46 am
ho fatto copia incolla sdel tuo codice da telenet e la risposta del server arriva:

Code: [Select]
HTTP/1.0 301 Moved Permanently
Cache-Control: private, no-cache, no-store, must-revalidate
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Location: https://www.facebook.com/vicenza.thunders
P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
Pragma: no-cache
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 0
Set-Cookie: datr=3J3YUcrWeFkCqdw9vp-hUtZ9; expires=Mon, 06-Jul-2015 22:44:44 GMT
; path=/; domain=.facebook.com; httponly
Content-Type: text/html; charset=utf-8
X-FB-Debug: sWR59dYDp7tZZ6ehjnkyMhzOkf5gtDR8BhsB5Co5miU=
Date: Sat, 06 Jul 2013 22:44:44 GMT
Connection: close
Content-Length: 0


immagino sia identica alla risposta che ottieni (anceh se SEMBRA che tu non ottenga nulla... assai strano direi)
partiamo dalla prima riga:

Code: [Select]
HTTP/1.0 301 Moved Permanently

urca, la pagina non è quì, è stata spostata!

Code: [Select]
Location: https://www.facebook.com/vicenza.thunders
ed ecco dove: httpS, ovvero DEVI usare l'https.
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 07, 2013, 01:04 am
facendo delle prove ho scoperto che risponde mettendo solo una opzione nella stringa degli User-Agent
la risposta che ottengo è quella che ottieni anche te, ma se scrivo HTTPS mi da l'errore 400 bad request

al momento il mio codice è così:
Quote

    client.println("GET /vicenza.thunders HTTPS/1.0");
    client.println("Host: www.facebook.com");
    client.println("User-Agent: Mozilla/5.0");
    client.print("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/");client.println("*;q=0.8");
    client.println("Accept-Language: en-US,en;q=0.8");
    client.println("Accept-Encoding: gzip,deflate,sdch");
    client.println("Connection: keep-alive");
    client.println();

Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Jul 07, 2013, 12:52 pm
Mi dispiace non essere a casa per fare delle prove.
Leo non ho capito una cosa, ma i siti HTTPS quindi secondo te possono essere almeno letti ma non interrogati ?
Consiglio gare prove con google.com che risponde sia a http che ad HTTPS. Nel primo caso via Arduino si può sia leggere la pagina sia fare una query e ricevere risposta, mentre usando HTTPS si potrà solo leggere la pagina ? Per capirci potrò su HTTPS capite che doodle sta usando perché il nome del doodle è in chiaro ?
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 07, 2013, 02:24 pm
Quote
ma se scrivo HTTPS mi da l'errore 400 bad request


eccerto! il protocollo di comunicazione è sempre in HTTP, solo che il layer sottostante anzichè essere direttamente in TCP, è su un layer SSL che fornisce la critazione.
Quindi i comandi NON cambiano, solo sono criptati prima di essere inviati.

Quote
Leo non ho capito una cosa, ma i siti HTTPS quindi secondo te possono essere almeno letti ma non interrogati ?

no, sia richiesta che risposta sono via HTTPS, poi alcuni siti fanno il login in HTTPS e poi rispediscono su HTTP, ma stanno scomparendo.

il problema è con l'HTTP per un eventuiale Man-In-The-Middle, lo spoof della sessione è una baggianata. Mi direte che è quasi impossibile beccare una persona, ma se stai spoofando in modo automatico le utenze a siti molto usati come twitter e simila, magari attraverso un router wifi senza password strategicamente piazzato vicino alla finestra che da sulla piazza...
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 07, 2013, 03:06 pm
E quindi come si fa a leggere delle pagine in https?
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 07, 2013, 03:38 pm
non con arduino, almeno fuichè primanon troviun modo per fargli criptare tutto in SSL, e ionon ho mai rtovato nulla (è molto pesante come algoritmo..)
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 07, 2013, 03:52 pm
Ahn ok quindi è lo stesso problema delle API.. Bisognerebbe usare un supporto esterno, come per esempio viene fatto nella libreria Twitter che si appoggia su un altro server.. No? Altre soluzioni possibili?
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 10, 2013, 10:18 pm
ok provando un poì più o meno ho capito come funzionano le chiamate http, anche se resta questo grande problema legato alla criptazione SSL..
Ora vorrei capire come funziona la creazione di una pagina web, ho visto l'esempio WebServer dove viene caricata una pagina html che è accessibile attraverso l'indirizzo ip.. Penso però che questo non sia accessibile al di fuori della LAN, sbaglio? Ho letto in altre discussioni approposito dell'ip pubblico, potrei usare quello, no? non ho idea di come funzioni quindi probabilmente mi sto sbagliando... Cos'altro potrei fare in questo senso? se volessi farlo comunicare con un mio sito devo comunque usare le chiamate http, no?
grazie
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 10, 2013, 10:39 pm
il tuo server risponde a qualsiasi chiamante. Il problema è accettarechiamate dall'esterno.

Se vai su www.mioip.it (e non hai fastweb / internet key) vedrai il tuo ip pubblico. Però è uno, e i tuoi pc sono tanti. E quindi? e quindi quello è l'ip del router.
Il tuo router fa da NAT (e quindi indirettamente da firewall per il traffico in entrata), tu DEVI dire al tuo router che tutto il traffico in arrivo sulla porta X (80 TCP nel tuo coso) va rediretto sulla porta Y (sempre 80 TCP nel tuo caso) del computer locale Z (ip locale dell'arduino)

è la stessa identica cosa che fai con emule/torrent o i server dei giochi o qualsiasi altro server che vuoi rendere accessibile dall'esterno.

Quote
se volessi farlo comunicare con un mio sito devo comunque usare le chiamate http, no?

sì, se è un sito, se invece è un server di altro tipo parlerà con il protocollo più adatto. FTP (scambio file), SNMP(invio mail), POP3(ricezione mail), IMAP(invio e ricezione mail), SSH(bhe, no per lo stesso motivo dell'SSL, controllo remoto dei PC btw), etc...
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 10, 2013, 11:08 pm

il tuo server risponde a qualsiasi chiamante. Il problema è accettarechiamate dall'esterno.

Se vai su www.mioip.it (e non hai fastweb / internet key) vedrai il tuo ip pubblico. Però è uno, e i tuoi pc sono tanti. E quindi? e quindi quello è l'ip del router.
Il tuo router fa da NAT (e quindi indirettamente da firewall per il traffico in entrata), tu DEVI dire al tuo router che tutto il traffico in arrivo sulla porta X (80 TCP nel tuo coso) va rediretto sulla porta Y (sempre 80 TCP nel tuo caso) del computer locale Z (ip locale dell'arduino)
è la stessa identica cosa che fai con emule/torrent o i server dei giochi o qualsiasi altro server che vuoi rendere accessibile dall'esterno.

su questo devo documentarmi meglio perchè il funzionamento di emule e dei torrent non lo mai capito bene :smiley-roll-sweat: ... comunque da come lo dici tu non sembra neanche così impossibile :)


Quote
se volessi farlo comunicare con un mio sito devo comunque usare le chiamate http, no?

sì, se è un sito, se invece è un server di altro tipo parlerà con il protocollo più adatto. FTP (scambio file), SNMP(invio mail), POP3(ricezione mail), IMAP(invio e ricezione mail), SSH(bhe, no per lo stesso motivo dell'SSL, controllo remoto dei PC btw), etc...

non ho capito, ma per le email non c'entra niente se il sito è criptato in SSL? è completamente diverso?
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 10, 2013, 11:18 pm
no, attento, i siti propongono un'interfaccia grafica al servizi email. Il vero protocollo sottostante funziona a colpi di ascii :)
Ricordati sempre che l'HTTP è l'ultimo arrivato, mail e similia esistevano quando le pagine erano HTML PURO e scaricare un'immagine come il logo in alto di arduino impiegava parecchi secondi.

in generale, visto che una comunicazione TCP ascii si può instaurare con il programma TELNET, presente su windows, linux e mac e funziona allo stesso modo, se scrivi "telnet quello che vuoi fare" otterrai millemila risultati
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 11, 2013, 12:59 am
mi piace sta cosa, appena posso provo :)
una domanda, probabilmente sto confondendo alcune cose, ciò significa che sono "meno criptati" e quindi meno sicuri delle pagine criptate in SSL?
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 11, 2013, 08:50 am
sono NON criptati (plain text), come l'http, quindi altamente insicuri... ma comunque non è così facile
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 22, 2013, 08:27 pm
non sono ancora riuscito a provare le e-mail :smiley-sweat:
però questo weekend sono stato all'HackItaly ad H-Farm e nel mio team abbiamo fatto questo: https://www.hackerleague.org/hackathons/hackitaly/hacks/bob
siccome lavoravamo con iPhone e il bluetooth non si può usare abbiamo usato una comunicazione WiFi tramite pacchetti UDP che da quel che ho capito funzionano solo sulla LAN (almeno che non si faccia quello che si diceva in precedenza con l'IP pubblico?)

Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Jul 22, 2013, 11:00 pm
Scusa non ho capito, su questo BOB siete riusciti ad usare https ?
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 22, 2013, 11:19 pm

Scusa non ho capito, su questo BOB siete riusciti ad usare https ?

dal punto di vista di arduino no, l'arduino comunica con iPhone tramite pacchetti UDP, poi con l'iPhone hai più liberà nel navigare e usare API varie
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Jul 24, 2013, 12:05 am
ok, certo, e' la stessa cosa che usare un pc, un server qualsiasi intermedio tra arduino ad esempio via usb ed i siti https
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 24, 2013, 12:37 am
si, ma purtroppo con iPhone non hai molta scelta visto che è praticame tutto bloccato...
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 24, 2013, 11:41 am
non è ludp a essere bloccato ma le porte. mentre il tcp solo il server deve avere la porta in entrata aperta, ludp neceswitta di una porta in entrata aperta per ogni ricevente.
poi gli ip locali sono gli ip dei pc nella tua lan. la tua lan, tipicamente, viene raccolta in una Nat da parte del router ed esce su intenet con un ip unico pubblico.normalmente quindi il router non altera il traffico lan, ma solo quello in uscita. quando una connessione tcp esce, il router compila una tabrlla e quindi sa a chi rispedire larisposta in arrivo sull'ip pubblico. quando invece fai da server o parli in udp il router non sa a chi redirigere la connessione (udp essendo connectionless non ha risposte, ogni messaggio è una comunicazione a se) ha bisogno che sia tu a compilare a mano queste tabelle, specificando che il traffico in arrivo, tcp o udp, sulla porta x va ritrasmesso allip locale y.


ricordo che ludp non fa check degli errori o ritrasmissione datagrammi persi, per sua natura. sinceramente non capisco perché vi siete incasinati ad usarlo.

lunica cosa udp che
non funziona fuori dalla lan è il multicast
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 24, 2013, 12:45 pm
si, io intendevo che i metodi tradizionali di connessione (bluetooth e porta seriale) dell'iPhone sono bloccati e quindi devi passare per internet... anche se pare che con iOS7 abbiano tolto le restrizioni sul BLE...

comunque, si potrebbe fare anche una connessione tcp anzi che usare i pacchetti udp?
è tipo quello che dicevamo in precedenza di caricare una pagina html accessibile tramite l'IP, no?
per avere una comunicazione bidirezionale entrambi i dispositivi dovrebbero agire sia come server che come client, sbaglio?
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Jul 24, 2013, 02:30 pm
No, arduino può fare da server e rispondere a delleGET provenienti dall applicazione.
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 24, 2013, 03:03 pm
:smiley-roll-sweat: ma come le legge queste GET?
se io devo far passare delle info dall'iPhone all'arduino non ho bisogno che anche l'iPhone funzioni da server?
grazie
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Jul 25, 2013, 06:46 pm
no non serve, l'iphone sara' un semplice browser. Io sto' usando questo metodo, cerca JSon
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Jul 26, 2013, 12:31 pm
nel udp chi riceve è server. nel tcp il server è quello che apre la porta e rimane in ascolto, ma stabilità la connessione diventa bidirezionale. attraverso la porta del server. (prendilo pwe buono)

il tcp puro è esattamente come una seriale per come la usi, poi sjw vuoi usandò i giusti comandi puoi fare http, snmp, pop3 eccetera, ma sono complicazioni in più inutili
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Jul 26, 2013, 12:49 pm
ok grazie mille! è sempre bello imparare cose nuove ;)
adesso purtroppo non ho più l'iPhone per provare perchè non era mio... devo cercare qualche cosa per provare a fare quello che facevo sull'iPhone su android o sul computer
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Aug 29, 2013, 11:45 pm
ultimamente sto imparando a programmare il mio samsung per fare dei test con l'UDP, dal punto di vista android va tutto bene, mentre non capisco perchè l'arduino perde la connessione per una decina di secondi ogni circa dieci secondi, non so se è un problema della mia rete o della shield...

comunque la domanda che mi ponevo oggi è se posso connettermi ad un wifi pubblico, tipo quelli che ci sono nelle piazze o in alcuni locali, che non sono protetti da WPA ma quando accedi devi accedere dal browser ed inserire da lì la password.. se sono fortunato e la pagina non è https ce la potrei fare con arduino, no?
nel caso non riuscissi a mettere le credenziali posso comunque comunicare con l'udp o finchè non ho messo la password non ho un IP?
devo andare a provare in piazza, ma mi sa che ho problemi anche con android a comunicare in udp su una rete così, perchè se non sbaglio va solo il browser..
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Aug 30, 2013, 01:06 am
Ho fatto delle prove, nel mio comune non viene usato HTTPS per l'autenticazione, quindi dovresti riuscire ad autenticarti con Arduino.
L IP viene assegnato al momento della connessione, quindi anche se non ti autentichi il tuo IP lo tieni ed anche gat e DNS sono assegnati, non so come venga bloccata la navigazione
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Aug 30, 2013, 04:34 am
avendo l'IP posso comunque usere la comunicazione UDP anche senza inserire la password, sbaglio?
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Aug 30, 2013, 08:22 am
Io non so come viene bloccata la navigazione TCP, credevo non venisse assegnato gateway, invece c'è. Quindi così come bloccano la navigazione potrebbero bloccare anche UDP. Secondo me è bloccato tutto, anche ad esempio FTP, altrimenti si può cmq usare la rete gratuitamente dove è invece necessari pagare. Nel mio comune ad esempio i primi 50MB sono gratis, poi si paga, non credo che abbiano intenzione di farti usare la rete gratis sotto nessuna forma
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Aug 30, 2013, 10:59 am
c'è dietro un firewall che quasi sicuramente blocca tutto, finchè non metti la password, dopo di che probabilmente ti lascia fare tutto via TCP, e forse trasmettere in UDP (per ricevere UDP devi aprire le porte, o usare degli hack tipo traversal/pounch-throug nat o roba del genere)

se la rete è settata male, però, dovresti essere in grado di pingare/collegarti agli altri host collegati direttamente all'acces-point, in quanto tutti nella stessa lan..


avendo l'IP posso comunque usere la comunicazione UDP anche senza inserire la password, sbaglio?

non capisco la logica di questa affermazione.
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Aug 30, 2013, 12:35 pm

se la rete è settata male, però, dovresti essere in grado di pingare/collegarti agli altri host collegati direttamente all'acces-point, in quanto tutti nella stessa lan..

Nel mio caso senza mettere password posso pingare gli altri utenti connessi, interessante, devo provare a trasferire un file
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: er_like_no_other on Aug 30, 2013, 02:18 pm

non capisco la logica di questa affermazione.

se lo sapessi non lo chiederei :smiley-sweat:

ma sbaglio o sul cellulare quando ti connetti a queste reti puoi navigare solo dal browser? e le applicazioni (es facebook, whatsapp..) non vanno?
se faccio un'app con lo scopo di prendere dati dal web e mandarli all'arduino, mi sa che ho dei problemi, no?
grazie per le risposte! ;)
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Aug 30, 2013, 03:27 pm
A me funziona tutto, la password sbloccherà come ha detto lesto il firewall dell accesspoint, dopodiché a quel IP viene aperta la navigazione
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: cece99 on Aug 30, 2013, 03:59 pm
Testato, ma se uno fa uno sca degli IP connessi e mette l'IP statico aggira il blocco, no?
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Aug 30, 2013, 04:43 pm
intendi forzare un ip già connesso? non è così facile come dici; se imposti un ip fisso, semplicemente il router ti butta fuori. Se invii dati fingendoti un altro, essendo wireless, puoi intercettare la risposta, ma quell'altro vedendo arrivare una risposta (ma forse anche se vede un se stesso doppio) che non si aspettava manda un reset e credo venga fuori un bel casino...

Quote
e le applicazioni (es facebook, whatsapp..) non vanno?

dipende da come è stata impostata. Serve uno sniffer con delle regole per rilevare ed accettare solo il traffico http... ma dovresti accettare anche l'httpS che è criptato, e in tal caso si può usare l'SSH tunneling (ovvero ti fingi una connessione HTTPS, in realtà ti colleghi ad un server che ti fa da ponte agli altri servizi)
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: testato on Aug 30, 2013, 04:59 pm
Allora ho testato la connessione comunale mia.
La password blocca solo l accesso a internet, senza password ho trasferito un file fra tablet e telefono android.
Mettendo la password l'accesso a internet è funzionante sia verso i browser che verso le app.

Strano, non mi sarei aspettato l accesso libero alla rete, in pratica fra amici ci possiamo condividere grandi file a massima velocità  gratuitamente ed anonimamente  :)
Title: Re: Domande da principiante per iniziare ad usare WiFi/Ethernet shield
Post by: lestofante on Aug 30, 2013, 05:16 pm
baco da parte del sistemista, secondo me.
Potresti usare la rete comunale come veicolo di infezione per chi la usa senza lasciare grandi tracce (solo mac address, credo), sopratutto perchè molti win applicano regole di sicurezza più bassa per la lan... prova ad andare in cerca di cartelle condivise  :smiley-mr-green: