import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Charleston Anjos
* @Version 2.0
* @Create 22/06/2013
*/
public class cComputador {
public cComputador(){
System.out.println(this.IP());
System.out.println(this.HOST());
System.out.println(this.MAC());
System.out.println(this.usuario());
try {
System.out.println(this.execCommand("ipconfig -all"));
} catch (IOException ex) {
Logger.getLogger(cComputador.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args) {
cComputador pc = new cComputador();
}
public String IP(){
//Cria uma variável do tipo Inet
InetAddress ip = null;
try{
ip = InetAddress.getLocalHost(); //seta o endereço para o computador local
}catch(Exception e){
e.printStackTrace();//exceção
}
return String.valueOf(ip.getHostAddress());//retorna o endereço de ip
}
public String HOST(){
//Cria uma variável do tipo Inet
InetAddress ip = null;
try{
ip = InetAddress.getLocalHost();//seta o endereço para o computador local
}catch(Exception e){
e.printStackTrace();//exceção
}
return String.valueOf(ip.getHostName());//retorna o nome do computador
}
public String MAC(){
String mac_retorno = null;//cria uma váriavel string para retornar o endereço mac
try{
//cria um objeto do tipo network para pegar o ende
NetworkInterface network = NetworkInterface.getByInetAddress(InetAddress.getLocalHost());
//guarda em um array o endereço do hardware (placa mãe)
byte[] mac = network.getHardwareAddress();
//string imutável
StringBuilder sb = new StringBuilder();
//faz um looping pegando os números do endereço mac e formata (mascara)
for (int i = 0; i < mac.length; i++) {
//adiciona na string sb os dados (concatenação)
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
//variavel mac_retorno recebe a string imutavel
mac_retorno = String.valueOf(sb);
}catch(Exception e){
e.printStackTrace();//exceção
}
//retorna o endereço obtivo
return mac_retorno;
}
public String usuario(){
return System.getProperty("user.name");
}
public synchronized static String execCommand(final String commandLine) throws IOException {
boolean success = false;
String result;
Process p;
BufferedReader input;
StringBuffer cmdOut = new StringBuffer();
String lineOut = null;
int numberOfOutline = 0;
try {
p = Runtime.getRuntime().exec(commandLine);
input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((lineOut = input.readLine()) != null) {
if (numberOfOutline > 0) {
cmdOut.append("\\n");
}
cmdOut.append(lineOut);
numberOfOutline++;
}
result = cmdOut.toString();
success = true;
input.close();
} catch (IOException e) {
result = String.format("Falha ao executar comando %s. Erro: %s", commandLine, e.toString());
}
// Se não executou com sucesso, lança a falha
if (!success) {
throw new IOException(result);
}
return result;
}
}