当前获取MAC地址的方法主要有:
1.采用Runtime.getRuntime().exec("ipconfig /all")获取,这种获取的是本机的相关信息;
2.采用Runtime.getRuntime().exec("nbtstat -A " + 对应客户端IP),这种方式如果有防火墙就获取不到了;
3.网上有说用ARP,SNMP,NBT等,据说ARP只能在同网段局域网内,SNMP据说对方要开启这个端口,NBT也是在是不知道怎么去实现
那位老大们有这方面经验的帮个忙啊,坐等.
1.采用Runtime.getRuntime().exec("ipconfig /all")获取,这种获取的是本机的相关信息;
2.采用Runtime.getRuntime().exec("nbtstat -A " + 对应客户端IP),这种方式如果有防火墙就获取不到了;
3.网上有说用ARP,SNMP,NBT等,据说ARP只能在同网段局域网内,SNMP据说对方要开启这个端口,NBT也是在是不知道怎么去实现
那位老大们有这方面经验的帮个忙啊,坐等.
C/S 的话,可以使用 JDK 6 中 java.net.NetworkInterface#getHardwareAddress() 方法
一.此跨网段含义主要涉及到路由器转换,防火墙,IP多网段(二、三级都有可能),用户PC防火墙,内网-公网-内网多转换等,貌似采用简单的硬件信息获取方式很难(个人觉得可能需要产生通信).
二.通过前台页面比如JS或插件方式又会涉及到IE安全(需用户主动允许或强制安装)的问题,但项目需要的是在客户的每一次操作都能有记录,比如登陆、退出等(用户不允许或不安装又可能导致信息获取不到),如果用户被强制插件安装个人觉得方式比较丑陋.
现在正在研究采用SNMP和NBT方式,哪位如果有这方面的经验或者建议的,欢迎指导
正常情况下 只能得到同意网段的其他设备的mac.垮网段了,你只有让客户段自己得到自己的mac,再发送给你.不能从服务器上得到了