用js获取mac值

请教一下,如何用js获取电脑的mac值?非ie浏览器。

用google浏览器来获取mac地址,能实现吗?感觉好难。

浏览器做了限制不行的。要是js能获取太可怕了,那么就是漏洞。后台可以获取的

需求就是用js来获取mac地址,而且还要用google浏览器,这方面我没接触过,找了方法都是针对IE浏览器的。

很多人都尝试用goole,但是js确实不行,让后台做,java肯定能获取的

好的,谢谢你,让我少走了不少弯路,我跟后台说了。因为没接触过获取mac地址这块业务。多谢。

后台获取 MAC 地址?怎么做到的?MAC 是物理层的概念啊,中间那么多节点的 MAC 也要携带?

后台只能获取到本机的,但是无法获取客户端,别人的电脑的mac地址获取不到,有没有大神做过?

在命令提示符下输入命令“ipconfig /all”回车之后就会显示当前计算机的一些网络信息,其中“Physical Address”字样的这一项就是当前计算机中网卡的 MAC地址。当然,如果计算机中安装有多个网卡,则会有多个“Physical Address”字样
大多数接入Internet的方式是把主机通过局域网组织在一起,然后再通过交换机路由器等设备和 Internet 相连接。这样一来就出现了如何区分具体用户,防止 IP地址被盗用的问题。由于IP地址只是逻辑上的标识,任何人都能随意修改,因此不能用来具体标识一个用户。而 MAC地址则不然,它是固化在网卡里面的。从理论上讲,除非盗来硬件即网卡,否则一般是不能被冒名顶替的。基于 MAC 地址的这种特点,因此局域网采用了用MAC地址来标识具体用户的方法

需求是这样的,做了一个网站,想看到外部谁登录过这个网站,能够获取到对方的mac地址。能否可行呢?(不是看自己电脑的mac地址)

https://blog.csdn.net/wangmx1993328/article/details/80510008

刚才看了这个代码,这是获取自身电脑的mac地址(本地mac)。但是无法获取别人的mac地址。需求是外部访问某网站,就能获取访问者的mac地址。

你们后台应该有办法^_^

刚才就是后台看的代码,我不懂java:sob:

我想说,TCP 协议下互联网上的服务器就没法获取客户端的 MAC 啊,根本不会携带过去。除非客户端运行程序取出 MAC 再主动发给服务端。

客户端取出mac再发给服务端,那就应该是我前端做的事情,但是搜了好多js取mac的方法,感觉都不行。有没有解决办法呢?

mac

package com.util.net;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;

import javax.servlet.http.HttpServletRequest;

public class IpUtil {
/**
* 获取登录用户IP地址
*
* @param request
* @return
*/
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader(“x-forwarded-for”);
if (ip == null || ip.length() == 0 || “unknown”.equalsIgnoreCase(ip)) {
ip = request.getHeader(“Proxy-Client-IP”);
}
if (ip == null || ip.length() == 0 || “unknown”.equalsIgnoreCase(ip)) {
ip = request.getHeader(“WL-Proxy-Client-IP”);
}
if (ip == null || ip.length() == 0 || “unknown”.equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if (ip.equals(“0:0:0:0:0:0:0:1”)) {
ip = “本地”;
}
return ip;
}

/**
 * 根据IP地址获取mac地址
 * 
 * @param ipAddress
 *            127.0.0.1
 * @return
 * @throws SocketException
 * @throws UnknownHostException
 */
public static String getLocalMac(String ipAddress) throws SocketException,
		UnknownHostException {
	// TODO Auto-generated method stub
	String str = "";
	String macAddress = "";
	final String LOOPBACK_ADDRESS = "127.0.0.1";
	// 如果为127.0.0.1,则获取本地MAC地址。
	if (LOOPBACK_ADDRESS.equals(ipAddress)) {
		InetAddress inetAddress = InetAddress.getLocalHost();
		// 貌似此方法需要JDK1.6。
		byte[] mac = NetworkInterface.getByInetAddress(inetAddress)
				.getHardwareAddress();
		// 下面代码是把mac地址拼装成String
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < mac.length; i++) {
			if (i != 0) {
				sb.append("-");
			}
			// mac[i] & 0xFF 是为了把byte转化为正整数
			String s = Integer.toHexString(mac[i] & 0xFF);
			sb.append(s.length() == 1 ? 0 + s : s);
		}
		// 把字符串所有小写字母改为大写成为正规的mac地址并返回
		macAddress = sb.toString().trim().toUpperCase();
		return macAddress;
	} else {
		// 获取非本地IP的MAC地址
		try {
			System.out.println(ipAddress);
			Process p = Runtime.getRuntime()
					.exec("nbtstat -A " + ipAddress);
			System.out.println("===process==" + p);
			InputStreamReader ir = new InputStreamReader(p.getInputStream());

			BufferedReader br = new BufferedReader(ir);

			while ((str = br.readLine()) != null) {
				if (str.indexOf("MAC") > 1) {
					macAddress = str.substring(str.indexOf("MAC") + 9,
							str.length());
					macAddress = macAddress.trim();
					System.out.println("macAddress:" + macAddress);
					break;
				}
			}
			p.destroy();
			br.close();
			ir.close();
		} catch (IOException ex) {
		}
		return macAddress;
	}
}

}

试试

浏览器沙盒不可能让你直接访问硬件,更何况是 MAC 这种跟浏览器没关系的信息。只能考虑插件、C 端软件等方式。

还没有找到合适的插件,实在不行弄成c/s结构去做。