Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mimak aldeiaTi

Obter o MAC Address e o Serial Number do HD (número de série do HD)

Recommended Posts

Estou tentando desenvolver uma aplicação em Java, pois preciso que funcione tanto no Windows como em Linux. Eu preciso que essa aplicação me retorne o Serial Number do HD e MAC Anddress da Placa de rede. Eu estava pensando em desenvolver um arquivo ISAPI para colocar no Servidor e obter essas informações do Linux e quando fosse Windows usar um script, mas além de dar muito trabalho, não passou de idéia ainda não cheguei a implementar, pois tenho quase certeza que vai dar errado. Estou desenvolvendo um site em PHP então eu preciso também que essa aplicação rode como um applet para eu poder usar online, pois eu tenho a necessidade de identificar o computador em si que está acessando o site. O problema é que eu não sei qual API do Java eu devo usar.

Resumindo: Preciso saber qual a API eu devo usar para fazer um applet para buscar HDSN e MAC Address e usar o em um site PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ve se isso serve para você!

 

mostra as propriedade da rede:

 

import java.net.InetAddress;import java.io.InputStream;import java.io.BufferedInputStream;import java.io.IOException;import java.text.ParseException;import java.util.StringTokenizer; public final class NetworkInfo {	private final static String getMacAddress() throws IOException {		String os = System.getProperty("os.name"); 		try {			if(os.startsWith("Windows")) {				return windowsParseMacAddress(windowsRunIpConfigCommand());			} else if(os.startsWith("Linux")) {				return linuxParseMacAddress(linuxRunIfConfigCommand());			} else {				throw new IOException("unknown operating system: " + os);			}		} catch(ParseException ex) {			ex.printStackTrace();			throw new IOException(ex.getMessage());		}	}  	/*	 * Linux stuff	 */	private final static String linuxParseMacAddress(String ipConfigResponse) throws ParseException {		String localHost = null;		try {			localHost = InetAddress.getLocalHost().getHostAddress();		} catch(java.net.UnknownHostException ex) {			ex.printStackTrace();			throw new ParseException(ex.getMessage(), 0);		} 		StringTokenizer tokenizer = new StringTokenizer(ipConfigResponse, "\n");		String lastMacAddress = null; 		while(tokenizer.hasMoreTokens()) {			String line = tokenizer.nextToken().trim();			boolean containsLocalHost = line.indexOf(localHost) >= 0; 			// see if line contains IP address			if(containsLocalHost && lastMacAddress != null) {				return lastMacAddress;			} 			// see if line contains MAC address			int macAddressPosition = line.indexOf("HWaddr");			if(macAddressPosition <= 0) continue; 			String macAddressCandidate = line.substring(macAddressPosition + 6).trim();			if(linuxIsMacAddress(macAddressCandidate)) {				lastMacAddress = macAddressCandidate;				continue;			}		} 		ParseException ex = new ParseException			("cannot read MAC address for " + localHost + " from [" + ipConfigResponse + "]", 0);		ex.printStackTrace();		throw ex;	}  	private final static boolean linuxIsMacAddress(String macAddressCandidate) {		// TODO: use a smart regular expression		if(macAddressCandidate.length() != 17) return false;		return true;	}  	private final static String linuxRunIfConfigCommand() throws IOException {		Process p = Runtime.getRuntime().exec("ifconfig");		InputStream stdoutStream = new BufferedInputStream(p.getInputStream()); 		StringBuffer buffer= new StringBuffer();		for (;;) {			int c = stdoutStream.read();			if (c == -1) break;			buffer.append((char)c);		}		String outputText = buffer.toString(); 		stdoutStream.close(); 		return outputText;	}   	/*	 * Windows stuff	 */	private final static String windowsParseMacAddress(String ipConfigResponse) throws ParseException {		String localHost = null;		try {			localHost = InetAddress.getLocalHost().getHostAddress();		} catch(java.net.UnknownHostException ex) {			ex.printStackTrace();			throw new ParseException(ex.getMessage(), 0);		} 		StringTokenizer tokenizer = new StringTokenizer(ipConfigResponse, "\n");		String lastMacAddress = null; 		while(tokenizer.hasMoreTokens()) {			String line = tokenizer.nextToken().trim(); 			// see if line contains IP address			if(line.endsWith(localHost) && lastMacAddress != null) {				return lastMacAddress;			} 			// see if line contains MAC address			int macAddressPosition = line.indexOf(":");			if(macAddressPosition <= 0) continue; 			String macAddressCandidate = line.substring(macAddressPosition + 1).trim();			if(windowsIsMacAddress(macAddressCandidate)) {				lastMacAddress = macAddressCandidate;				continue;			}		} 		ParseException ex = new ParseException("cannot read MAC address from [" + ipConfigResponse + "]", 0);		ex.printStackTrace();		throw ex;	}  	private final static boolean windowsIsMacAddress(String macAddressCandidate) {		// TODO: use a smart regular expression		if(macAddressCandidate.length() != 17) return false; 		return true;	}  	private final static String windowsRunIpConfigCommand() throws IOException {		Process p = Runtime.getRuntime().exec("ipconfig /all");		InputStream stdoutStream = new BufferedInputStream(p.getInputStream()); 		StringBuffer buffer= new StringBuffer();		for (;;) {			int c = stdoutStream.read();			if (c == -1) break;			buffer.append((char)c);		}		String outputText = buffer.toString(); 		stdoutStream.close(); 		return outputText;	}   	/*	 * Main	 */	public final static void main(String[] args) {		try {			System.out.println("Network infos"); 			System.out.println("  Operating System: " + System.getProperty("os.name"));			System.out.println("  IP/Localhost: " + InetAddress.getLocalHost().getHostAddress());			System.out.println("  MAC Address: " + getMacAddress());		} catch(Throwable t) {			t.printStackTrace();		}	}}

Fonte: http://forum.java.sun.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho os Applets que voce necessita;

 

Eu tenho os dois Applets que voce necessita. Eles capturam o mac address da placa de rede da pessoa que entra no seu site e o serial do HD. So basta ter instalado na maquina do cliente o JAVA Runtime Environment Update 2. Ele solicitará que o cliente autorize um certificado. A partir da autorização o cliente consegue logar no site. Dessa forma o applet entra em ação e detecta o mac address e o serial do HD. Funciona perfeitamente. Com ele, voce consiguirá restringir qual computador, ou quantos poderão entra no seu site. Se quiser maiores informações, queira entrar em contato pelo e-mail suporte@hostsecure.com.br. Se quiser ver os Applets em funcionamento entre em http://www.meumacaddress.com.

Um abraço

 

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho os Applets que voce necessita;

 

Eu tenho os dois Applets que voce necessita. Eles capturam o mac address da placa de rede da pessoa que entra no seu site e o serial do HD. So basta ter instalado na maquina do cliente o JAVA Runtime Environment Update 2. Ele solicitará que o cliente autorize um certificado. A partir da autorização o cliente consegue logar no site. Dessa forma o applet entra em ação e detecta o mac address e o serial do HD. Funciona perfeitamente. Com ele, voce consiguirá restringir qual computador, ou quantos poderão entra no seu site. Se quiser maiores informações, queira entrar em contato pelo e-mail suporte@hostsecure.com.br. Se quiser ver os Applets em funcionamento entre em http://www.meumacaddress.com.

 

 

Paulo

NAVEGADORES SUPORTADOS: Internet Explorer 6 e 7 e Firefox

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.