J2ME - getIPdevice
package org.socketdemo; import javax.microedition.io.Connector; import javax.microedition.io.SocketConnection; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class SocketDEMO extends MIDlet implements CommandListener { protected SocketDEMO midlet = this; private Alert info; protected void destroyApp(boolean value) throws MIDletStateChangeException { notifyDestroyed(); } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { new Thread() { public void run() { SocketConnection socket = null; try { socket = (SocketConnection) Connector.open("socket://193.204.114.233:13"); socket.openInputStream(); info = new Alert("Info", "Current IP: " + socket.getLocalAddress() + "\nPort: " + socket.getLocalPort(), null, AlertType.INFO); info.setTimeout(Alert.FOREVER); info.setCommandListener(midlet); getDisplay().setCurrent(info); } catch(Exception error) { info = new Alert("Info", "Current IP: N/A\nPort: N/A", null, AlertType.INFO); info.setTimeout(Alert.FOREVER); info.setCommandListener(midlet); getDisplay().setCurrent(info); } finally { if(socket != null) { try { socket.close(); } catch(Exception error) { } } } } }.start(); } protected Display getDisplay() { return Display.getDisplay(this); } public void commandAction(Command cmd, Displayable dsp) { if(cmd == Alert.DISMISS_COMMAND) { try { destroyApp(true); } catch(MIDletStateChangeException error) { } } } }