Como detectar o endereço IP e o nome da máquina do host sem usar socket

A classe java.net.InetAddress tem um metódo estático chamado getLocalHost que retorna informações sobre a máquina local. O método getHostName() retorna o nome da máquina e o método getHostAddress retorna o endereço da máquina local.


import java.net.InetAddress;
import java.net.UnknownHostException;

public class IPAdress {
  public static void main(String[] args) {
      try {
            System.out.println(InetAddress.getLocalHost().getHostName());
            System.out.println(InetAddress.getLocalHost().getHostAddress());
      } catch (UnknownHostException e) {
            e.printStackTrace();    
      }
  }
}