「java客户端mac地址」java获取客户端mac
本篇文章给大家谈谈java客户端mac地址,以及java获取客户端mac对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java如何获取客户端mac地址?
以下代码实现浏览器中获取mac地址放入一个输入框或隐藏域,随登录信息一起提交到服务器。因为安全级别的关系可能会出现警告,可选择允许执行。长期使用的话建议用户将改站点加入信任站点或把安全级别调低。
HTMLHEADTITLEWMI Scripting HTML/TITLE
META http-equiv=Content-Type content="text/html; charset=gb2312"
SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo
document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
document.forms[0].txtDNSName.value=unescape(sDNSName);
//document.formbar.submit();
/SCRIPT
SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo
if(objObject.IPEnabled != null objObject.IPEnabled != "undefined" objObject.IPEnabled == true)
{
if(objObject.MACAddress != null objObject.MACAddress != "undefined")
MACAddr = objObject.MACAddress;
if(objObject.IPEnabled objObject.IPAddress(0) != null objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
if(objObject.DNSHostName != null objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
/SCRIPT
META content="MSHTML 6.00.2800.1106" name=GENERATOR/HEAD
BODY
OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT/OBJECT
OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223/OBJECT
SCRIPT language=JScript
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
/SCRIPT
FORM id="formfoo" name="formbar" action="index.do" method="post"INPUT value="00-11-11-B4-52-EF" name="txtMACAddr" INPUT value="210.42.38.50" name="txtIPAddr" INPUT value="zhupan" name="txtDNSName" /FORM/BODY/HTML
java如何获取mac地址?
以windows举例。
运行命令" cmd ipconfig /all"就会出现以下结果
Physical Address. . . . . . . . . : 20-CF-30-9A-60-EE
。
java就能过这样的命令来获取。以下是示例。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestMac
{
public static void main(String[] args) {
System.out.println("Operation System=" + getOsName());
System.out.println("Mac Address=" + getMACAddress());
System.out.println("通过ip获取mac"+getMACAddress("192.168.1.101"));
}
public static String getOsName() {
String os = "";
os = System.getProperty("os.name");
return os;
}
public static String getMACAddress() {
String address = "";
String os = getOsName();
if (os.startsWith("Windows")) {
try {
String command = "cmd.exe /c ipconfig /all";
Process p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
if (line.indexOf("Physical Address") 0) {
int index = line.indexOf(":");
index += 2;
address = line.substring(index);
break;
}
}
br.close();
return address.trim();
} catch (IOException e) {
}
} else if (os.startsWith("Linux")) {
String command = "/bin/sh -c ifconfig -a";
Process p;
try {
p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
if (line.indexOf("HWaddr") 0) {
int index = line.indexOf("HWaddr") + "HWaddr".length();
address = line.substring(index);
break;
}
}
br.close();
} catch (IOException e) {
}
}
address = address.trim();
return address;
}
public static String getMACAddress(String ipAddress) {
String str = "", strMAC = "", macAddress = "";
try {
Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress);
InputStreamReader ir = new InputStreamReader(pp.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
for (int i = 1; i 100; i++) {
str = input.readLine();
if (str != null) {
if (str.indexOf("MAC Address") 1) {
strMAC = str.substring(str.indexOf("MAC Address") + 14,
str.length());
break;
}
}
}
} catch (IOException ex) {
return "Can't Get MAC Address!";
}
//
if (strMAC.length() 17) {
return "Error!";
}
macAddress = strMAC.substring(0, 2) + ":" + strMAC.substring(3, 5)
+ ":" + strMAC.substring(6, 8) + ":" + strMAC.substring(9, 11)
+ ":" + strMAC.substring(12, 14) + ":"
+ strMAC.substring(15, 17);
//
return macAddress;
}
}
剑天梦的回答原理和我这个一样,都是通过Process 执行命令。 我直接补充到答案里了。不过
我这边运行那个命令出来的结果很多,那么花的时间就长了。优点是能够获取别人的mac地址 。
java怎么获取用户客户端mac地址
以下代码实现浏览器中获取mac地址放入一个输入框或隐藏域,随登录信息一起提交到服务器。因为安全级别的关系可能会出现警告,可选择允许执行。长期使用的话建议用户将改站点加入信任站点或把安全级别调低。
HTMLHEADTITLEWMI Scripting HTML/TITLE
META http-equiv=Content-Type content="text/html; charset=gb2312"
SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo
document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
document.forms[0].txtDNSName.value=unescape(sDNSName);
//document.formbar.submit();
/SCRIPT
SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo
if(objObject.IPEnabled != null objObject.IPEnabled != "undefined" objObject.IPEnabled == true)
{
if(objObject.MACAddress != null objObject.MACAddress != "undefined")
MACAddr = objObject.MACAddress;
if(objObject.IPEnabled objObject.IPAddress(0) != null objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
if(objObject.DNSHostName != null objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
/SCRIPT
META content="MSHTML 6.00.2800.1106" name=GENERATOR/HEAD
BODY
OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT/OBJECT
OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223/OBJECT
SCRIPT language=JScript
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
/SCRIPT
FORM id="formfoo" name="formbar" action="index.do" method="post"INPUT value="00-11-11-B4-52-EF" name="txtMACAddr" INPUT value="210.42.38.50" name="txtIPAddr" INPUT value="zhupan" name="txtDNSName" /FORM/BODY/HTML
Java web 怎么得到客户端的Mac地址
代码如下:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
/*
* 物理地址是48位,别和ipv6搞错了
*/
public class LOCALMAC {
/**
* @param args
* @throws UnknownHostException
* @throws SocketException
*/
public static void main(String[] args) throws UnknownHostException, SocketException {
// TODO Auto-generated method stub
//得到IP,输出PC-201309011313/122.206.73.83
InetAddress ia = InetAddress.getLocalHost();
System.out.println(ia);
getLocalMac(ia);
}
private static void getLocalMac(InetAddress ia) throws SocketException {
// TODO Auto-generated method stub
//获取网卡,获取地址
byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
System.out.println("mac数组长度:"+mac.length);
StringBuffer sb = new StringBuffer("");
for(int i=0; imac.length; i++) {
if(i!=0) {
sb.append("-");
}
//字节转换为整数
int temp = mac[i]0xff;
String str = Integer.toHexString(temp);
System.out.println("每8位:"+str);
if(str.length()==1) {
sb.append("0"+str);
}else {
sb.append(str);
}
}
System.out.println("本机MAC地址:"+sb.toString().toUpperCase());
}
}
java客户端mac地址的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java获取客户端mac、java客户端mac地址的信息别忘了在本站进行查找喔。