分享取实际网卡MAC地址的一种方法

    近期由于监管要求,需要在做业务的时候将机器的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地址。

    办法很土,但是可以解决问题。

    

posted on 2016-09-01 09:21  M1911  阅读(394)  评论(0编辑  收藏  举报