kra usa o comando no dos ou no shell…
arp [ip]
lhe retornara o mac desejado…
flw
Tenta isso, mas só apartir do Java 6:
public String getMac(){
String resposta = new String("");
try {
InetAddress inet = InetAddress.getByAddress("localhost", new byte[]{127, 0, 0, 1});
NetworkInterface net = NetworkInterface.getByInetAddress( inet );
resposta = net.getHardwareAddress();
} catch (UnknownHostException ex) {
ex.printStackTrace();
} catch (SocketException ex) {
ex.printStackTrace();
}
return resposta;
}
Pesquise sobre InetAddress e verá outras formas.
para java 6
Tem uma linha que é assim:
InetAddress localHost = InetAddress.getLocalHost();//Linha 21 no link que mandei
basta substituir por uma das opções abaixo:
InetAddress localhostIP = InetAddress.getByName(“maquina1”);
InetAddress localhostIP = InetAddress.getByAddress(“192.168.0.15”, new byte[]{192, 168, 0, 15});
InetAddress localhostIP = InetAddress.getByAddress(“maquina1”, new byte[]{192, 168, 0, 15});
Segue abaixo uma aplicação exemplo, porem caso ela não atenda você pode usar um comando como o arp -a, como o maicon.santiago sugeriu
[code]import java.io.IOException;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
public class GetHostName {
public static void main(String[] args) throws IOException {
String ip = “192.168.0.15”;
try {
InetAddress addr = InetAddress.getByName(ip);
//procura pelo ip, comando equivalente ao ping
if (addr.isReachable(5000)) {
// Pega o nome da maquina
String hostname = addr.getHostName();
// Pega o apelido da maquina
String hostnameCanonical = addr.getCanonicalHostName();
System.out.println("hostname:" + hostname);
System.out.println("hostnameCanonical:" + hostnameCanonical);
NetworkInterface netInter = NetworkInterface.getByInetAddress(addr);
if (netInter != null) {
byte[] mac = netInter.getHardwareAddress();
if (mac != null) {
for (int i = 0; i < mac.length; i++) {
System.out.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "");
}
} else {
System.out.println("sem privilégios");
}
} else {
System.out.println("sem privilégios");
}
} else {
System.out.println("ip não encontrado");
}
} catch (UnknownHostException e) {
System.out.println("desconhecido");
}
}
}[/code]
topico ta meio antigo, eu sei… mas ainda precisamos de uma solucao…
primeiro respondendo, nao sei se ele ja resolvel o caso…
quando vai pra pingar outro ip q nao seja o seu, ele nao responde… é por causa do firewall q bloqueia.
ai desativei todos… blz… agora a aplicacao consegue pingar o ip, mas nao consegue pegar o macAddress… diz que nao tenho privilegios… algiuem sabe como resolver:?
Gente tem como eu informar um ip e percorrer toda a minha rede atraz do mac address referente aquele ip ?
O negocio é que eu quero pegar um mac-address do Ip que eu informar e nao so o do localhost .
falow
Quando é informado o ip local funciona certinho , mas quando informo o ip de outra maquina lança um Exception !!!
Tentei fazer isoo mas É acusado um erro nessa linha .