perdón por desenterrar ese cadáver, pero en realidad solo pensé en el mismo problema. El punto es: no hay forma de detectar que directamente.
Altough, se me ocurrió un enfoque, que lamentablemente necesita alguna preparación: Debe obtener el nombre de host para la IP desde la que se realizó la solicitud.
Por ejemplo, cuando hago una solicitud a mi servidor web con mi teléfono a través de la red 3G y resolver la IP solicitud a la solicitud de nombre de host, me sale esto:
ip-xxx-xxx-xxx-xxx.web.vodafone.de
lo que sería necesario para recoger (o encuentre en Internet) una lista de nombres de host de proveedores web móviles. Con este enfoque, no se puede decir exactamente qué tipo de conexión usa un usuario, pero al menos se puede distinguir entre WiFi y redes móviles.
Esa es una muy buena pregunta. Dudo que HTTP proporcione algo, pero es posible que pueda ver la capa de transporte. –
¿Puedo preguntar qué * realmente * quiere responder? Además de limitar los datos para tratar de reducir los posibles cargos de datos para un usuario, no puedo pensar en ninguna razón por la cual le gustaría conocer esta información en particular. ¿Tal vez realmente quieres saber sobre latencia, calidad de conexión, etc.? –
No tengo una necesidad inmediata en este momento, pero ya ha identificado el motivo: para tratar de reducir los posibles cargos de datos para un usuario. Una aplicación se envió con un par de errores, y uno de los errores podría ser contabilizado en el servidor, pero obligaría al cliente a utilizar * lot * más datos. –