scusa per aver scavato quel cadavere, ma in realtà ho pensato proprio allo stesso problema. Il punto è: non c'è modo di rilevare che direttamente.
Anche se mi è venuto in mente un approccio che ha purtroppo bisogno di un po 'di preparazione: È necessario ottenere il nome host per l'IP da cui è stata fatta la richiesta.
Per esempio, quando faccio una richiesta al mio webserver sopra con il mio telefono su rete 3G e risolvere l'IP richiesta alla richiesta hostname, ottengo questo:
ip-xxx-xxx-xxx-xxx.web.vodafone.de
modo che avrebbe bisogno di raccogliere (o trovare su Internet) un elenco di nomi host dei provider di servizi web mobili. Con questo approccio, non è possibile stabilire con esattezza quale tipo di connessione viene utilizzata da un utente, ma almeno è possibile distinguere tra WiFi e reti mobili.
fonte
2012-10-07 08:59:57
Questa è davvero una bella domanda. Dubito che l'HTTP fornisca qualcosa, ma potresti essere in grado di guardare il livello di trasporto. –
Posso chiederti cosa vuoi * veramente * voler rispondere? A parte la limitazione dei dati per cercare di ridurre i potenziali costi di dati per un utente, non riesco a pensare a nessun motivo per cui vorresti conoscere questa particolare informazione. Forse vuoi davvero conoscere la latenza, la qualità della connessione, ecc.? –
Non ho un bisogno immediato in questo momento, ma hai già individuato il motivo: provare a ridurre i potenziali costi di dati per un utente. Un'app spediva con un paio di bug e uno dei bug poteva essere rappresentato sul server, ma avrebbe costretto il client a usare un * lotto * più dati. –