Retornar ip em variavel ( RESOLVIDO )

6 respostas
A

Ola pessoal,

Estou desenvolvendo um programa em outra linguaguem ( nao entendo nada de Java), mas preciso de uma classe em java que retorne por variavel o ip local (Win), meu sistema vai acessar a classe e obter o ip.
Depois de muito pesquisar, consegui utilizando um metodo void, tentei alterar para string e incluir o return mas nao consigo.
Verifiquem se podem me ajudar por favor.

Segue o codigo:
public class IpLocal {  
      public static void main(String[] args) {  
         new IpLocal().say();  
         }  
      
      public void say() {  
        try {  
        java.net.InetAddress i = java.net.InetAddress.getLocalHost();  
        String ip = i.getHostAddress();  
        System.out.println(ip); // IP address only  
        }  
        catch(Exception e){e.printStackTrace();}  
      }  
     }

6 Respostas

diego.sas
Apex:
Ola pessoal,

Estou desenvolvendo um programa em outra linguaguem ( nao entendo nada de Java), mas preciso de uma classe em java que retorne por variavel o ip local (Win), meu sistema vai acessar a classe e obter o ip.
Depois de muito pesquisar, consegui utilizando um metodo void, tentei alterar para string e incluir o return mas nao consigo.
Verifiquem se podem me ajudar por favor.

Segue o codigo:
public class IpLocal {  
      public static void main(String[] args) {  
         new IpLocal().say();  
         }  
      
      public String say() {  
        try {  
        java.net.InetAddress i = java.net.InetAddress.getLocalHost();  
        String ip = i.getHostAddress();  
       return ip; // IP address only  
        }  
        catch(Exception e){e.printStackTrace();}  
      }  
     }
A

Opa, valeu pela reposta.

Tentei com o codigo que enviou mas nao deu certo, retorna a mensagem “missing return statement
tem algo a ver com o exception ?

A

Opa!!..

Consegui, segue o codigo:

import java.net.UnknownHostException;

    public class IpLocal {  
      public static void main(String[] args) {  
         new IpLocal().say();  
         }  
      
      public String say()   {  
        try {  
        java.net.InetAddress i = java.net.InetAddress.getLocalHost();  
        String ip = i.getHostAddress();  
        return ip; 
        }  
        catch(UnknownHostException e){e.printStackTrace();
        return "NO-IP";}  
      }  
     }
diego.sas

Ops... foi mal.
Isso ocorreu devido o método declarar um retorno e eu ter colocado o return apenas no catch, e caso ocorresse uma exception não teria retorno...
Pode ser assim também...

Apex:
Opa!!..

Consegui, segue o codigo:

import java.net.UnknownHostException;

    public class IpLocal {  
      public static void main(String[] args) {  
         System.out.println( new IpLocal().say());  
         }  
      
      public String say()   {  
          String ip = "";
        try {  
        java.net.InetAddress i = java.net.InetAddress.getLocalHost();  
         ip = i.getHostAddress();  
        }  
        catch(UnknownHostException e){
         e.printStackTrace();         
        }  
        return ip;
      }  
        

     }

Caso tenha solucionado coloque edite seu post para RESOLVIDO.
flw

E
public class IpLocal {

public static void main(String[] args) {

String ip = say();

System.out.println(ip); // IP address only

}
public static String say() {

try {

java.net.InetAddress i = java.net.InetAddress.getLocalHost();

String ip = i.getHostAddress();

<a href="//System.out.println">//System.out.println</a>(ip); // IP address only

return ip;

}

catch(Exception e){

e.printStackTrace();

return “”;

}

}

}

todos os retornos quando são diferente de void precisam ser adicionados. Em condicionais ou tratamentos com try catch. Mas jah responderam. mesmo assim passo o seu código corrigido tb.

E

opa, esta ultima postagem do diego eh mais apropriada devido alguns padrões de programação. Primeiro a declaração
das variáveis para depois utiliza-la, com return unico neste caso. ateh

Criado 19 de março de 2012
Ultima resposta 19 de mar. de 2012
Respostas 6
Participantes 3