In a standalone java application, how can I get remote internet IP address and local IP address of my computer ?
DHCP will assign an internet IP to me when I am using internet. Which API I can access that IP address ? On the other side, how can I get my local IP, like 192.168.0.1... ?
What you're calling the "local IP address" is probably the LAN address; that's actually the address that you're assigned by DHCP. It's the "real" address of the machine on the local network. You're probably using a NAT setup, which stands for "Network Address Translation;" this is the widely used system by which many machines on a LAN can share a single Internet address. Your computer does not actually know what that Internet address is -- the network packets are modified by the NAT box (i.e., a router attached to your LAN) for transmittal to the Internet. There's no API by which your local machine can find out what that address is.
You can get your LAN address with InetAddress.getLocalHost().getHostAddress() .
The WAN address (the official term for your Internet IP address) is only available through external resources. There are several websites that give you back your IP address, you can find several using what's my ip. You will need to parse the results though.