Pessoal, preciso pegar o IP da máquina que estou, isso em windows e linux. Procurei sobre isso e todos os exemplos que encontrei me levam ao mesmo problema.
Bom, encontrei duas formas de fazer isso, vejam:
[code]// PRIMEIRA FORMA
InetAddress ia = null;
try {
ia = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
System.out.println("IP: " + ia.getHostAddress());
System.out.println("Nome: " + ia.getHostName());
[/code]
Qdo eu executo no windows funciona, porém no linux ele sempre me retorna o IP 127.0.0.1.
Vejam como fica a saída do código acima:
[quote]IP: 127.0.0.1
Nome: renata[/quote]
Então tentei desta segunda forma:
[code]// SEGUNDA FORMA
Enumeration nis = null;
try {
nis = NetworkInterface.getNetworkInterfaces();
} catch (SocketException e) {
e.printStackTrace();
}
while (nis.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) nis.nextElement();
Enumeration ias = ni.getInetAddresses();
while (ias.hasMoreElements()) {
InetAddress ia = (InetAddress) ias.nextElement();
System.out.println(ni.getName() + " -> ip: " + ia.getHostAddress() + " - hostname: " + ia.getHostName());
}
} [/code]
Esta de fato (pelo menos no linux pq no win eu ainda não testei), me retorna todas as informações possíveis, entre elas o tal IP que é o que eu quero. Mas como vou saber dentre as informações que ela libera, qual é a que eu quero?! Isso pode variar de linux pra linux, dependendo tb da placa de rede. Como faço? Vejam a saída do código acima:
[quote]eth0 -> ip: MEUIPV6 - hostname: MEUIPV6
eth0 -> ip: MEUIP - hostname: MEUIP
lo -> ip: 0:0:0:0:0:0:0:1%1 - hostname: 0:0:0:0:0:0:0:1%1
lo -> ip: 127.0.0.1 - hostname: localhost
Onde MEUIPV6 é aquele ipv6 que aparece qdo vou no console e digito ifconfig. E MEUIP é o IP da minha máquina.
[/quote]
Pessoal, será que não tem um jeito de eu pegar o IP da máquina local no linux?! No win eu já consegui, mas e no linux?!
Encontrei até um post do thingol de 2004 dizendo que em alguns linux haveria esse problema que estou enfrentando. Alguma dica pessoal? Uso linux slackware.
Grata,