Mapping a NAT port
suggest changeString myIp = getIpAddress(); int port = 55555; //creates a port mapping configuration with the external/internal port, an internal host IP, the protocol and an optional description PortMapping[] desiredMapping = new PortMapping[2]; desiredMapping[0] = new PortMapping(port,myIp, PortMapping.Protocol.TCP); desiredMapping[1] = new PortMapping(port,myIp, PortMapping.Protocol.UDP); //starting the UPnP service UpnpService upnpService = new UpnpServiceImpl(new AndroidUpnpServiceConfiguration()); RegistryListener registryListener = new PortMappingListener(desiredMapping); upnpService.getRegistry().addListener(registryListener); upnpService.getControlPoint().search();
//method for getting local ip private String getIpAddress() { String ip = ""; try { Enumeration<NetworkInterface> enumNetworkInterfaces = NetworkInterface .getNetworkInterfaces(); while (enumNetworkInterfaces.hasMoreElements()) { NetworkInterface networkInterface = enumNetworkInterfaces .nextElement(); Enumeration<InetAddress> enumInetAddress = networkInterface .getInetAddresses(); while (enumInetAddress.hasMoreElements()) { InetAddress inetAddress = enumInetAddress.nextElement(); if (inetAddress.isSiteLocalAddress()) { ip +=inetAddress.getHostAddress(); } } } } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); ip += "Something Wrong! " + e.toString() + "\n"; } return ip; }
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents