Annotation of embedaddon/miniupnpd/miniupnpc/java/JavaBridgeTest.java, revision 1.1
1.1 ! misho 1: import java.nio.ByteBuffer;
! 2: import java.nio.IntBuffer;
! 3:
! 4: import fr.free.miniupnp.*;
! 5:
! 6: /**
! 7: *
! 8: * @author syuu
! 9: */
! 10: public class JavaBridgeTest {
! 11: public static void main(String[] args) {
! 12: int UPNP_DELAY = 2000;
! 13: MiniupnpcLibrary miniupnpc = MiniupnpcLibrary.INSTANCE;
! 14: UPNPDev devlist = null;
! 15: UPNPUrls urls = new UPNPUrls();
! 16: IGDdatas data = new IGDdatas();
! 17: ByteBuffer lanaddr = ByteBuffer.allocate(16);
! 18: ByteBuffer intClient = ByteBuffer.allocate(16);
! 19: ByteBuffer intPort = ByteBuffer.allocate(6);
! 20: ByteBuffer desc = ByteBuffer.allocate(80);
! 21: ByteBuffer enabled = ByteBuffer.allocate(4);
! 22: ByteBuffer leaseDuration = ByteBuffer.allocate(16);
! 23: int ret;
! 24: int i;
! 25:
! 26: if(args.length < 2) {
! 27: System.err.println("Usage : java [...] JavaBridgeTest port protocol");
! 28: System.out.println(" port is numeric, protocol is TCP or UDP");
! 29: return;
! 30: }
! 31:
! 32: devlist = miniupnpc.upnpDiscover(UPNP_DELAY, (String) null, (String) null, 0, 0, (byte)2, IntBuffer.allocate(1));
! 33: if (devlist != null) {
! 34: System.out.println("List of UPNP devices found on the network :");
! 35: for (UPNPDev device = devlist; device != null; device = device.pNext) {
! 36: System.out.println("desc: " + device.descURL.getString(0) + " st: " + device.st.getString(0));
! 37: }
! 38: if ((i = miniupnpc.UPNP_GetValidIGD(devlist, urls, data, lanaddr, 16)) != 0) {
! 39: switch (i) {
! 40: case 1:
! 41: System.out.println("Found valid IGD : " + urls.controlURL.getString(0));
! 42: break;
! 43: case 2:
! 44: System.out.println("Found a (not connected?) IGD : " + urls.controlURL.getString(0));
! 45: System.out.println("Trying to continue anyway");
! 46: break;
! 47: case 3:
! 48: System.out.println("UPnP device found. Is it an IGD ? : " + urls.controlURL.getString(0));
! 49: System.out.println("Trying to continue anyway");
! 50: break;
! 51: default:
! 52: System.out.println("Found device (igd ?) : " + urls.controlURL.getString(0));
! 53: System.out.println("Trying to continue anyway");
! 54:
! 55: }
! 56: System.out.println("Local LAN ip address : " + new String(lanaddr.array()));
! 57: ByteBuffer externalAddress = ByteBuffer.allocate(16);
! 58: miniupnpc.UPNP_GetExternalIPAddress(urls.controlURL.getString(0),
! 59: new String(data.first.servicetype), externalAddress);
! 60: System.out.println("ExternalIPAddress = " + new String(externalAddress.array()));
! 61: ret = miniupnpc.UPNP_AddPortMapping(
! 62: urls.controlURL.getString(0), // controlURL
! 63: new String(data.first.servicetype), // servicetype
! 64: args[0], // external Port
! 65: args[0], // internal Port
! 66: new String(lanaddr.array()), // internal client
! 67: "added via miniupnpc/JAVA !", // description
! 68: args[1], // protocol UDP or TCP
! 69: null, // remote host (useless)
! 70: "0"); // leaseDuration
! 71: if (ret != MiniupnpcLibrary.UPNPCOMMAND_SUCCESS)
! 72: System.out.println("AddPortMapping() failed with code " + ret);
! 73: ret = miniupnpc.UPNP_GetSpecificPortMappingEntry(
! 74: urls.controlURL.getString(0), new String(data.first.servicetype),
! 75: args[0], args[1], null, intClient, intPort,
! 76: desc, enabled, leaseDuration);
! 77: if (ret != MiniupnpcLibrary.UPNPCOMMAND_SUCCESS)
! 78: System.out.println("GetSpecificPortMappingEntry() failed with code " + ret);
! 79: System.out.println("InternalIP:Port = " +
! 80: new String(intClient.array()) + ":" + new String(intPort.array()) +
! 81: " (" + new String(desc.array()) + ")");
! 82: ret = miniupnpc.UPNP_DeletePortMapping(
! 83: urls.controlURL.getString(0),
! 84: new String(data.first.servicetype),
! 85: args[0], args[1], null);
! 86: if (ret != MiniupnpcLibrary.UPNPCOMMAND_SUCCESS)
! 87: System.out.println("DelPortMapping() failed with code " + ret);
! 88: miniupnpc.FreeUPNPUrls(urls);
! 89: } else {
! 90: System.out.println("No valid UPNP Internet Gateway Device found.");
! 91: }
! 92: miniupnpc.freeUPNPDevlist(devlist);
! 93: } else {
! 94: System.out.println("No IGD UPnP Device found on the network !\n");
! 95: }
! 96: }
! 97: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>