2011-03-18 17 views
5

Tengo esta idea loca que no sé si es posible o no ... lo que quiero hacer es configurar mi teléfono como punto de acceso wifi, luego permitir que las personas se conecten a él , pero me encargo de todo el tráfico HTTP entrante.Uso del teléfono Android como servidor web wifi

Así:

  • wifi teléfono en modo de punto de acceso; abrir la red wifi (este tidbit funciona, sí, sé que no es compatible oficialmente, pero no tengo intención de distribuirlo en el mercado abierto, funciona en mi teléfono y eso es suficiente para mí).

  • cliente se puede conectar al teléfono (por ejemplo, mi computadora portátil: esto también funciona).

  • cuando el cliente intenta abrir una conexión http a cualquier servidor aleatorio, esto debe ser interceptado por mi aplicación y manejado por un servidor web local. Este es el punto en el que estoy estancado.

La parte del servidor web no debe ser demasiado difícil; hay servidores web (de código abierto) disponibles. Pero obtener el tráfico a ese servidor web, existe el problema.

El comportamiento que busco es un poco similar al que se obtiene al conectarse a un punto de acceso abierto, como puntos de acceso de hoteles, que luego lo redirigen a una página de inicio de sesión. Esta interceptación de la solicitud de conexión (¿sospecho que tengo que mirar las solicitudes DNS?) Es lo que busco.

He visto una aplicación que hace esto pero requieren que se rootee el teléfono. Espero encontrar una manera de hacerlo sin rootear el teléfono.

Respuesta

4

Los puntos de acceso WiFi suelen usar IPTables para redirigir el tráfico del puerto 80/443 a un servidor web local.

He corrido squid en máquinas linux en el pasado en el puerto 3128, luego he enviado todo el tráfico del puerto 80/443 a squid. Luego utilicé calamar redirigir cualquier url que no permití explícitamente a un servidor web local.

IPTables solo está disponible en dispositivos Android rooteados.

Y dudo que haya muchos servidores proxy disponibles en Android, por lo que tendría que enviar tráfico HTTP a un servidor proxy a través de la conexión de red.

+1

Ya tenía miedo de eso ... aunque técnicamente no es una solución, voy a marcar esta pregunta como respondido – Wouter

+0

Si esta solución sigue siendo correcta, ¿sería lo mismo para iOS? (¿Necesitarías instalar un programa similar a IPTables?) – Andy

+0

No soy un desarrollador de iOS, pero por lo que escucho de otros (y sentido común), iOS es mucho más restringido en lo que puede hacer una aplicación. Entonces, si incluso Android no lo permite, puedes apostar tu trasero. IOS se reirá ante la idea de permitirle redirigir el tráfico web. – Squirrelkiller

2

usted no necesita tener un proxy, sólo se necesita un LAMP pila completa en el dispositivo y IPtables, puede marcar todos los paquetes que no han sido autenticados para reenviar a su página local, luego usar php cambiar la regla para esa dirección IP una vez que la dirección se haya autenticado, usted podría hacer lo mismo para direcciones MAC si lo desea, entonces también necesitaría un daemon que periódicamente restablecer cada excepción

Cuestiones relacionadas