请教一个问题: Java 后端如何获取 mac 地址?

2021-04-07 23:09:14 +08:00
 ruoyuan
需求:给计算机设备唯一标识,通过后端能获取到 mac 地址吗?
或者有什么更好的解决方案吗?
4027 次点击
所在节点    程序员
21 条回复
chendy
2021-04-07 23:14:29 +08:00
这句话打搜索框里:java get mac address
a22271001
2021-04-07 23:14:34 +08:00
客户端获取了发回来
ch2
2021-04-07 23:41:45 +08:00
只有运行在客户端的代码才有可能获取到客户的辨识符,客户端运行的系统也可以使用各种方法拒绝不给你或者给你假的数据
nvkou
2021-04-08 00:32:15 +08:00
所有技术问题都可以用工程问题解决。比如这种情况下让客户拍网卡标签并签名。
手动狗头
wd
2021-04-08 08:27:56 +08:00
这问题太可怕了……
gitdoit
2021-04-08 08:41:23 +08:00
iyangyuan
2021-04-08 09:02:19 +08:00
不可行
ily433664
2021-04-08 09:05:12 +08:00
肯定是要在客户端获取,正常请求又没有携带相应的信息,你怎么可能获取得到
kingfalse
2021-04-08 09:27:29 +08:00
自己要是开发个客户端让用户安装,
luozic
2021-04-08 10:18:28 +08:00
客户端预装,or 特殊处理,不然不如照片+ocr
sonyxperia
2021-04-08 10:32:49 +08:00
提交照片可太骚了
Asuka0947
2021-04-08 11:01:34 +08:00
只能客户端获取,网络信息的只能获取到局域网内的机器信息,ie 借助 ActiveX 可以拿到,遇到过类型需求,说实话 mac 地址就算拿到了也不一定真实
guyeu
2021-04-08 11:08:24 +08:00
mac 地址不能作为计算机唯一标识。
bleepbloop
2021-04-08 11:34:24 +08:00
Internet 使用逻辑地址通信,只有在客户端所在子网中才可以获取到物理地址
xiaoxinshiwo
2021-04-08 13:55:43 +08:00
no1xsyzy
2021-04-08 14:54:39 +08:00
mac 地址实际上允许重复,只要不在同一个网络空间就不会造成问题。
1. 对 00-15 的虚拟机 MAC 地址不重复性没有任何保证或期望
2. CISCO 只确保合法途径购买的同区域机器的 MAC 不重复,这个期望弱到你大可相信在亚洲销售的一台交换机和北美销售的一台交换机。具有相同的 MAC 地址
3. MAC 地址可以被伪造,只要有 ring0 权限?
no1xsyzy
2021-04-08 14:59:21 +08:00
@xiaoxinshiwo 指纹也可以伪造,不是 “唯一标识”,而是 “辅助追踪标识”
似乎目前 Tor 浏览器的一个策略就是,放行指纹收集,但随着你使用的线路变动,所有已知的指纹信息源也会变动。
raaaaaar
2021-04-08 19:51:10 +08:00
MAC 地址肯定不行吧。。别人搞出来就没想过往网络层上面用,你还要在应用层玩么。。

设备唯一标识?说说具体业务吧,不然又是个 X-Y 问题
uselessVisitor
2021-04-09 09:13:02 +08:00
服务端如何获得客户端地址?顺着网线传送??
arloor
2021-04-09 16:44:40 +08:00
netty 4.x 版本有 MacAddressUtil

public static void main(String[] args) {
String mac = MacAddressUtil.formatAddress(MacAddressUtil.defaultMachineId());
System.out.println(mac);
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/768870

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX