Como obter IP CORRETO da Máquina por Método

5 respostas
A

Olá, sou usuário Linux, pra ser mais exato utilizo o Ubuntu 12.04. Estou tendo problemas quanto a um método para pegar o IP da máquina. Antigamente ele funcionava bem, porém depos de eu ter instalado a VMWare, ele pega o IP do driver da máquina virtual.

Aqui segue o método que pega i IP:
//Método para Obter o IP do Computador
	private static InetAddress getIP(boolean preferIpv4, boolean preferIPv6) throws SocketException {
        Enumeration en = NetworkInterface.getNetworkInterfaces();
        while (en.hasMoreElements()) {
            NetworkInterface i = (NetworkInterface) en.nextElement();
            for (Enumeration en2 = i.getInetAddresses(); en2.hasMoreElements();) {
                InetAddress addr = (InetAddress) en2.nextElement();
                if (!addr.isLoopbackAddress()) {
                    if (addr instanceof Inet4Address) {
                        if (preferIPv6) {
                            continue;
                        }
                        return addr;
                    }
                    if (addr instanceof Inet6Address) {
                        if (preferIpv4) {
                            continue;
                        }
                        return addr;
                    }
                }
            }
        }
        return null;
    }
Para dar mais informações, coloquei abaixo o que aparece no meu IFCONFIG:
eth0      Link encap:Ethernet

lo        Link encap:Loopback Local  
          inet end.: 127.0.0.1  Masc:255.0.0.0

vmnet1    Link encap:Ethernet  Endereço de HW 00:50:56:c0:00:01  
          inet end.: 172.16.10.1

vmnet8    Link encap:Ethernet  Endereço de HW 00:50:56:c0:00:08  
          inet end.: 192.168.193.1

wlan0     Link encap:Ethernet  Endereço de HW 4c:ed:de:74:e5:7c  
          inet end.: 192.168.0.100

Queria saber se alguém pode me ajudar a pegar o IP da rede a qual estou conectado, no caso seria a Wireless (wlan0), podendo arrumar esse método ou utilizar outro funciona?

AGRADEÇO DESDE JÁ! :)

5 Respostas

R

Acho que assim funciona: InetAddress.getLocalHost().getHostAddress()

A

[quote]Acho que assim funciona:
view plaincopy to clipboardprint?

InetAddress.getLocalHost().getHostAddress()

Desse jeito amigo me retorna 127.0.0.1, o certo seria 192.168.0.100…

R

[quote=alan_lima01]

Acho que assim funciona:
view plaincopy to clipboardprint?

InetAddress.getLocalHost().getHostAddress()

Desse jeito amigo me retorna 127.0.0.1, o certo seria 192.168.0.100…

Pra mim ele retorna 192.168.2.100

A

O problema é que no windows isso funciona perfeitamente, poŕem no Ubuntu não rola… ele retorna 127.0.0.1, eu já fiz esse teste :wink:

R

Ok, não sabia disso.

Encontrei no google, ve te ajuda: http://mariojp.com.br/2012/03/11/obtendo-o-endereco-ip-real-da-maquina-na-rede/

Criado 18 de novembro de 2012
Ultima resposta 18 de nov. de 2012
Respostas 5
Participantes 2