No estoy muy seguro de cómo obtener la dirección IP externa de la máquina como la vería una computadora fuera de una red.
Mi siguiente clase IPAddress solo obtiene la dirección IP local de la máquina.
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;
}
}