分享取实际网卡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地址。

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

时间: 2024-07-30 10:08:49

分享取实际网卡MAC地址的一种方法的相关文章

【转载】取得系统中网卡MAC地址的三种方法

From:http://blog.csdn.net/zhangting1987/article/details/2732135 网卡地址这个概念有点混淆不清.因为实际上有两个地址,mac地址和物理地址,一般说网卡地址我是指物理地址,不知道别人怎么看?物理地址指的是网卡上的存放地址的ROM里的地址,mac地址是这块卡工作的时候用的地址,一般情况下这两个地址是一样的,所以很多人都混用了,甚至不知道有区别  -_-# 网卡工作的时候,一个以太网帧60到1514(不包括crc),帧的crc是网卡自动加的

Java/JSP获得客户端网卡MAC地址的三种方法解析

java/jsp获得客户端(IE)网卡MAC地址的方法大概有三种. 1.通过命令方式,在客户端执行Ipconfig 等等.(java/jsp) 2.通过ActiveX的方法.(jsp) 3.通过向137的端口发送查询指令的方法.(java/jsp) 简介: 第一种方法,在真正用到时候不知道为什么获得mac地址的指令阻塞了,不往下继续执行.而且速度是这三种方法中最慢的一种. 代码如下: String sip=""; String smac=""; sip = requ

C#获取MAC地址的几种方法

首先需要用到的一些方法和类: public enum NCBCONST { NCBNAMSZ = 16, MAX_LANA = 254, NCBENUM = 0x37, NRC_GOODRET = 0x00, NCBRESET = 0x32, NCBASTAT = 0x33, NUM_NAMEBUF = 30, } [StructLayout(LayoutKind.Sequential)] public struct ADAPTER_STATUS { [MarshalAs(UnmanagedTy

Python windows下获取MAC地址的一种方法

我最近有一个项目,使用Python在win32下开发一个COM组建,该COM组建其中一个方法是获取本地电脑的MAC地址. 需求很简单,虽然我是Python新手中的新手,但我还是会使用搜索引擎进行搜索. 百度一下,发现大部分都介绍使用import UUID获取MAC地址,或使用os.popen("ipconfig /all")的方式获取.而后者容易受到操作系统中英文环境影响. 如这篇文章:http://www.cnblogs.com/Jerryshome/archive/2011/11/

win7H5棋牌源码搭建修改mac地址的三种方法

H5棋牌源码搭建出租出售,都可联系Q1446595067官网: h5.haozibbs.com Win7修改MAC地址方法有以下三种: 方法一:使用Win7MAC地址修改工具 1,只适用于windows7系统的网卡MAC地址修改.XP的可以用,但没做什么测试. 2,部分windows7下的无线网卡地址无法修改,理论上也可以使用本软件修改. 3,修改MAC地址前,请先在开始菜单-运行,输入cmd打开控制台,输入getmac获取原来网卡MAC并记下来,用于以后可以改回来. 4,软件使用方法很简单,只

java获取当前计算机网卡MAC地址

package com.yjm.testmac; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Enumeration; public class MacTest { public static void main(String[] args)

Python 获取 网卡 MAC 地址

/*********************************************************************** * Python 获取 网卡 MAC 地址 * 说明: * 记录一下Python如何获取网卡MAC地址,主要用于数据唯一性保存. * * 2016-10-14 深圳 南山平山村 曾剑锋 **********************************************************************/ 一.参考文档: pyth

在Mac OSX中获取网卡MAC地址

今天在CocoaChina上看到有人发帖在询问如何在Mac OSX下获得网卡的物理地址,恰好最近在学习IOKit的一些知识,所以通过IOKit的接口肯定是可以很方便的拿到MAC地址信息的,但不知道还有没有其它更方便的API了,所以我姑且贴出一段通过IOKit去获得网卡MAC地址的代码: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 - (void)applicationDid

C++ 硬件信息 获取网卡MAC地址

获取计算机网卡MAC地址的方法很多,这里采用的是命令行的形式获取,可以获取有线网卡与无线网卡的MAC地址,很简单,直接 上代码. [1]头文件 #if !defined(AFX_95644697_C78F_4DD6_885B_3D7C40B2D55C__INCLUDED_) #define AFX_95644697_C78F_4DD6_885B_3D7C40B2D55C__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER