V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ruoyuan
V2EX  ›  程序员

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

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

    设备唯一标识?说说具体业务吧,不然又是个 X-Y 问题
    zm8m93Q1e5otOC69
        19
    zm8m93Q1e5otOC69  
       Apr 9, 2021
    服务端如何获得客户端地址?顺着网线传送??
    arloor
        20
    arloor  
       Apr 9, 2021
    netty 4.x 版本有 MacAddressUtil

    public static void main(String[] args) {
    String mac = MacAddressUtil.formatAddress(MacAddressUtil.defaultMachineId());
    System.out.println(mac);
    }
    arloor
        21
    arloor  
       Apr 9, 2021
    public static void main(String[] args) {
    String mac = MacAddressUtil.formatAddress(MacAddressUtil.bestAvailableMac());
    System.out.println(mac);
    }

    用这个吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1095 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 63ms · UTC 18:30 · PVG 02:30 · LAX 11:30 · JFK 14:30
    ♥ Do have faith in what you're doing.