Я не слишком уверен, как можно получить внешний IP-адрес машины, поскольку компьютер за пределами сети увидит его.
Мой следующий класс IPAddress получает только локальный IP-адрес устройства.
public class IPAddress {
    private InetAddress thisIp;
    private String thisIpAddress;
    private void setIpAdd() {
        try {
            InetAddress thisIp = InetAddress.getLocalHost();
            thisIpAddress = thisIp.getHostAddress().toString();
        } catch (Exception e) {
        }
    }
    protected String getIpAddress() {
        setIpAdd();
        return thisIpAddress;
    }
}