Problema No-Ip desde red interna

Buenas tardes,

Estoy desarrollando un proyecto en el que un dispositivo android (a traves de una aplicación que no es mia https://play.google.com/store/apps/details?id=com.luvago.netio&hl=es) envía peticiones al arduino a través de un puerto tcp. Para que esto funcione desde fuera de casa he configurado una cuenta no-ip para que todas las peticiones que le lleguen a no-ip las enrute a la ip pública de mi router y este lo he configurado para que todas las peticiones que lleguen por cierto puerto las enrute a la ip local del arduino.

Por ejemplo: Android -> Peticion a xxx.ddns.net puerto 3200 No-ip -> Host xxx.ddns.net - 8x.13x.1x.25x (ipPublica de mi router que me encargo de actualizar cuando cambia) Puertos Router -> Puerto externo 3200 - Puerto interno 3200 - Tcp y Udp - ip 192.168.1.22 Arduino -> Ethernet.begin((mac)0xDE, 0xAD, 0xBE, 0xEF, 0xAD, 0xED, (ip)192,168,1,22, (puertaEnlace)192,168,1,1, (subMasc)255,255,255,0);

Todo esto FUNCIONA cuando envío peticiones con el móvil conectado a la red 3G, el problema se da cuando tengo el movil conectado a la red WIFI del router al que tengo conectado el arduino. No me llega la petición al arduino.

He buscado información sobre este problema y en arduino no he encontrado nada, si que he visto en otros foros que hay gente que tiene montado un servidor(pc) e intenta acceder a una web alojada en este desde un pc que está en la misma red la solucion que dan es que en el fichero HOST del segundo pc se añada una linea que indique que cuando se vayan a lanzar peticiones a la dirección no-ip las haga por la ip local del arduino.

Gracias por la ayuda de antemano.

¿y ya probaste la solución del fichero HOST? me parece que debería funcionar

editar el fichero hosts no es la solución. 1. En Android no lo puedes editar 2. cuando no estes en tu wifi de casa, lo buscaría el ip interno 192.168.1.22 en internet en vez del ip del dominio no-ip

Esto es un problema muy común si tienes cámaras ip y que sepa no hay solución fácil. Me ha funcionado alguna vez hace años, con una combinación router/provedor, pero no sé decirte cuales erán.

Lo mismo pasa con aplicaciones voip en el smartphone si el sipserver esta en casa/empresa. Por eso existe en algunas apps en la configuración la opción de ingresar dos direcciones, un dominio y una ip. La app reconoce si esta en wifi de casa o fuera y dependiendo donde estes usa el dominio o la dirección interna 192.168.1.22 en tu caso. No-ip esta previsto de acceder desde internet a tu arduino, no desde tu red interna.

ya sé que esto no soluciona tu problema, pero al menos lo entiendes.

Manda una sugerencia al autor de la app para incorporar esta mejora,.

Claro que se puede, http://www.adslzone.net/moviles/android/como-modificar-el-archivo-hosts-de-android/

aunque efectivamente no solucionará del todo el problema.

Una posible solución, pasaría por la aplicación de Android, en ella debería haber una opción para que cuando detecte una red Wifi que ha sido asignada como "para resolver" en vez de llamar a la IP publica llame a la de la red privada.

podrías buscar una aplicación que haga lo mismo, pero que sea de código libre así podrías intentar agregar ese pequeño parámetro que resolvería el problema

cambiar hosts no se debe, dado que fuera de la casa ya no encontrará la ip de su no-ip, sino usará directamente la privada del hosts