Retornar ip em variavel ( RESOLVIDO )

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:

[code]
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();}  
  }  
 }  [/code]

[quote=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:

[code]
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();}  
  }  
 }  [/code]

[/quote]

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 ?

Opa!!..

Consegui, segue o codigo:

[code]

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";}  
  }  
 }  [/code]

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…

[quote=Apex]Opa!!..

Consegui, segue o codigo:

[code]

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;
  }  
    

 }  [/code][/quote]

Caso tenha solucionado coloque edite seu post para RESOLVIDO.
flw

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();
//System.out.println(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.

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