Reenvío de puertos Android

¿Cómo puedo realizar un reenvío de puertos desde un dispositivo Android a un enrutador utilizando la IP desde otro dispositivo?

Quiero conectar desde el dispositivo android externamente a un routers ip público: puerto para que pueda acceder al dispositivo de hardware que está conectado al enrutador. (Android -> IP externa: Puerto) -> Router -> hardware Dispositivo Su propio IP y mac).

Introduzca aquí la descripción de la imagen

Código:

PortMapping mapping = new PortMapping(); UnsignedIntegerTwoBytes externalPort = new UnsignedIntegerTwoBytes(22555L); UnsignedIntegerTwoBytes internalPort = new UnsignedIntegerTwoBytes(80L); mapping.setDescription("HardwareDescription"); mapping.setEnabled(true); mapping.setExternalPort(externalPort); mapping.setInternalClient("192.168.2.68"); mapping.setInternalPort(internalPort); mapping.setProtocol(PortMapping.Protocol.TCP); mapping.setRemoteHost("192.168.2.254"); mUpnpService = new MyUpnpServiceImpl(new PortMappingListener(mapping)); mUpnpService.getRouter(); mUpnpService.getControlPoint().search(SCAN_TIMEOUT); 

UpnpServiceImpl:

 private class MyUpnpServiceImpl extends UpnpServiceImpl { public MyUpnpServiceImpl(RegistryListener... listeners) { super(new AndroidUpnpServiceConfiguration(getWifiManager()), listeners); } @Override public Router getRouter() { return super.getRouter(); } @Override protected Router createRouter(ProtocolFactory protocolFactory, Registry registry) { return new AndroidWifiSwitchableRouter(configuration, protocolFactory, getWifiManager(), getConnectivityManager()); } } 

El código anterior no se bloquea, pero también no crea ningún puerto!

es posible? Si la respuesta es sí, puede usted señalarme en la dirección correcta.

Encontró la respuesta para esta pregunta. El primer paso es habilitar la opción UPNP en el enrutador, después de este paso importar la biblioteca net.sbbi.upnp buscar el dispositivo enrutador (IGD) y usar el método addPortMapping .

Este es un ejemplo para cualquier persona que quiera abrir el puerto en el router usando cualquier IP, no sólo desde el dispositivo actual que ejecuta la aplicación.

https://github.com/ManolescuSebastian/Port_Forward_Android

Tienes que conectar a tu router a través de un escritorio con cualquier explorador (iexplorer, cromo, etc) intenta conectar a la dirección 192.168.1.1 (la que es tu gateway , ejecuta ipconfig desde una ventana de cmd y verás una línea que Dice cuál es su gateway [el enrutador]), escriba el usuario del router y contraseña y configurarlo. Depende del enrutador y del modelo, consulte el manual del enrutador. Busque algo que diga NAT , Port Forward o Virtual Server . Puede abrir un solo puerto o un rango de puertos, escriba la dirección IP en la que se deben reenviar esos puertos, en este caso la IP de su equipo. En caso de duda, busque en Internet el nombre de su enrutador y cómo abrir / reenviar puertos.

Buena suerte.

  • ¿Cómo puedo mantener mi aplicación en segundo plano?
  • Llegar a un dispositivo de red por IP y puerto mediante el emulador de Android
  • Escucha un shoutcast con Android
  • Crear SSLSocket por SSLSocketFactory con tiempo de espera de conexión establecido
  • ¿Cómo asociar la intención de conectividad a socket?
  • Enviar / Recibir archivo / imagen Socket C # Android
  • Conexión HTTP de Android
  • ¿El zócalo del cliente androide, cómo leer datos?
  • Android juego multi-jugador a través de la red
  • Socket Android: java.net.SocketException: No hay ruta para alojar
  • Cómo enviar el archivo binario y el texto usando el mismo socket
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.