近期由于监管要求,需要在做业务的时候将机器的mac地址也要上报,之前的代码其实已经实现了取mac地址的功能,但是存在一个问题,如果有多块网卡的时候或者装了虚拟机的情况下就尴尬了,之前的代码默认是取第一块网卡的MAC地址,这样就不符合要求。由于技术功底不扎实,不知道如何判断到底实际网卡是哪一块,后来想到了一种歪门邪道的方法,在这里做个笔记和分享。
主要问题:不知道客户端跟服务器之间到底是走的哪块网卡
解决办法:那就想办法确定这块网卡
主要是在对客户端连接服务器成功后进行处理:
第一步:客户端连接成功后,通过netstat -n命令将当年机器的连接状态进行抓取,可以落地也可以直接读内存,假设我们的服务器地址是140.207.185.111
第二步:遍历刚才获取的连接状态信息,根据服务器地址过滤到如下信息:
TCP 192.168.1.10:1250 140.207.185.111:8080 ESTABLISHED
这里就获得了实际的网卡IP地址:192.168.1.10
第三步:再去获取MAC地址,根据之前取得IP地址进行遍历过滤,进而获得真正想要的MAC地址。
办法很土,但是可以解决问题。
时间: 2024-10-10 06:05:24