获取客户端mac地址
我自己写了个小程序通过ip来获取mac地址得再局域网测试成功了,但是就是不知道发布到网上是否能成功...
网页代码(应为是测试所以用得<% %>)
<%@ page language="java" pageEncoding="utf-8"%>
<html>
<head>
</head>
<body>
<%
getMacAddress getmac=new getMacAddress(request.getRemoteHost().toString());
out.println(request.getRemoteHost());
out.println(getmac.getMAC());
%>
</body>
</html>
后台代码
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class getMacAddress {
/** IP Address */
private String address;
/** MAC Address */
private String mac;
public getMacAddress(){
}
public getMacAddress(String address) {
this.address = address;
}
public void setAddress(String address){
this.address = address;
}
public String getMAC() {
String tmpStr = "";
String tmpMAC = "";
try {
Process process = Runtime.getRuntime().exec("nbtstat -a " + address);
InputStreamReader isReader = new InputStreamReader(process.getInputStream());
LineNumberReader lnReader = new LineNumberReader(isReader);
for (int i = 1; i < 100; i++) {
tmpStr = lnReader.readLine();
if (tmpStr != null) {
if (tmpStr.indexOf("MAC Address") > 1) {
tmpMAC = tmpStr.substring(tmpStr.indexOf("MAC Address") + 14,
tmpStr.length());
break;
}
}
}
} catch (IOException ex) {
return null;
}
if (tmpMAC.length() < 17) {
return null;
}
mac = tmpMAC.substring(0, 2) + ":" + tmpMAC.substring(3, 5)
+ ":" + tmpMAC.substring(6, 8) + ":" + tmpMAC.substring(9, 11)
+ ":" + tmpMAC.substring(12, 14) + ":"
+ tmpMAC.substring(15, 17);
return mac;
}
}