Le informazioni provengono sempre dal cliente. Come ottenere le informazioni sul server è una domanda diversa, naturalmente.
User-Agent
Quando un client HTTP effettua una richiesta, può includere alcune informazioni su se stesso nell'intestazione User-Agent
. Ad esempio, i browser in genere includono alcune informazioni sul nome e sulla versione del browser e alcune informazioni di base sul sistema operativo.
Questo è ciò che la funzione integrata di PHP sta leggendo. 1 Sfortunatamente, il formato di queste stringhe non è standardizzato. L'analisi di queste informazioni può essere complicata e probabilmente dovrebbe essere lasciata a una libreria.
Per identificare un accesso basato su app, tutto ciò che devi fare è fare in modo che il client HTTP dell'app fornisca un'intestazione User-Agent
. Troverete come farlo nella documentazione pertinente. Ovviamente, dovrai assicurarti di poterlo analizzare sul server.
1 Per informazioni sul browser / sistema operativo. L'indirizzo IP è un problema separato.
Implementazione personalizzata
In alternativa, è possibile definire un formato di messaggio più strutturato e includerlo con la richiesta di accesso (ad esempio).
Questo ti dà un maggiore controllo su quali informazioni vengono inviate e semplifica l'analisi lato server. Lo svantaggio è che devi implementare e mantenere una logica aggiuntiva, piuttosto che affidarti alle intestazioni HTTP standard.
Non l'ho fatto da solo, ma appare puoi anche far sì che i browser inviino un valore personalizzato per utente. Potresti anche considerare di cercare librerie lato client che facciano questo genere di cose. Certo, devi assicurarti che la tua versione del browser e la tua versione dell'app siano compatibili.
Quale opzione è migliore?
È difficile rispondere senza conoscere l'intero sistema. Tuttavia, se ti aspetti che le richieste vengano inviate solo / per lo più dai browser standard e dalla tua app, inizierei con l'analisi della stringa user-agent.
Se le informazioni sono davvero importanti per i tuoi utenti, lo sforzo aggiuntivo potrebbe essere giustificato. Lo stesso vale, se hai bisogno di informazioni che in genere non vengono inviate dai browser, ma che di solito puoi acquisire tramite JavaScript.
In ogni caso, nota che l'informazione non è affidabile - qualsiasi cliente può in linea di principio inviare qualsiasi cosa, indipendentemente dal meccanismo di trasmissione implementato.