This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
I was just curious, I remember reading it somewhere, and how you can post the IP address to a website, so that others can get that information, but I can't remember more than that. It is in the specifications for either the Messaging API, or ...
Nope, Push technology.
To create an inbound connection based on a static address, call Connector.open() with a URL that describes both a protocol and a local inbound port; for example: Connector.open("socket://:5000") Connector.open("datagram://:5000") Connector.open("sms://:5000")
To create an inbound connection based on a dynamic address, call Connector.open() with a URL that describes just a protocol (and not a local inbound port), to indicate you want the system to assign an address; for example: Connector.open("socket://") Connector.open("datagram://")
When using a system-assigned address, you must publish this address so that external systems can connect to your application. If you're using a ServerSocketConnection or a UDPDatagramConnection you can get the dynamically assigned address from the getLocalAddress() and getLocalPort() methods. You can also retrieve the hostname assigned to your device, by invoking System.getProperty("microedition.hostname"). To publish the dynamic address on an external system you can simply use HTTP.
With many (most?) operators, it's no use to get the phone's IP address. These operators' firewalls prevent inbound TCP connection attempts, and inbound UDP packets that don't match a recent outbound UDP packet. I have SIM cards from the two main operators in my area, and they both have this kind of firewall (though I'm told that the third operator doesn't have this restriction yet).