Re:mac-address ip rede

8 respostas
maicon.santiago

kra usa o comando no dos ou no shell…
arp [ip]
lhe retornara o mac desejado…
flw

8 Respostas

Cabazzo

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.

bueno

Veja esse link, tem o que você precisa

http://www.paulovittor23.org/?p=28

bueno

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

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

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");
		}
	}
}
tiagoemerick

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:?

I

Gente tem como eu informar um ip e percorrer toda a minha rede atraz do mac address referente aquele ip ?

I

O negocio é que eu quero pegar um mac-address do Ip que eu informar e nao so o do localhost .

falow

I

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 .

Criado 17 de março de 2008
Ultima resposta 17 de mar. de 2008
Respostas 8
Participantes 5