mac地址 订阅
MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 [1]  。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址 [2]  。 展开全文
MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 [1]  。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址 [2]  。
信息
别    称
MAC位址、硬件地址
特    点
唯一性
作    用
用来定义网络设备的位置
所属领域
计算机技术
中文名
MAC地址
外文名
Media Access Control Address
MAC地址简介
MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的 [3]  。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,如:00-16-EA-AE-3C-40就是一个MAC地址,其中前6位16进制数00-16-EA代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后6位16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不更改自己的MAC地址,MAC地址在世界是惟一的。形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性 [3]  。
收起全文
精华内容
下载资源
问答
  • MAC地址

    千次阅读 2021-01-17 10:12:41
    一、什么是MAC地址 1、 MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。MAC地址与网络无关,即无论将带有这个地址的硬件(如网卡、集线器、路由器等...

    一、什么是MAC地址
    1、 MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。MAC地址与网络无关,即无论将带有这个地址的硬件(如网卡、集线器、路由器等))接入到网络的何处,都是相同的MAC地址

    2、MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D就是一个MAC地址,其中的前16位16进制数08:00:20代表网络硬件制造商的编号,由IEEE分配,后6位16进制数0A:8C:6D代表该制造商的某个网络产品(如网卡)的系列号

    3、每个网络制造商必须确保它制造的每个以太网设备都具有相同的前3三个字节以及不同的后3个字节。这样,就可以保证世界上每个以太网设备都具有唯一的MAC地址。

    二、如何查看MAC地址
    按系统键+R,输入CMD打开命令提示符窗口,输入ipconfig /all指令,其中的物理地址即是MAC地址

    展开全文
  • 笔记本无线和有线的MAC地址修改

    万次阅读 多人点赞 2018-06-20 09:34:20
    无线网卡的mac地址在出厂时就被烧录好,在全球是唯一的代表着它的身份。但是我们可以通过修改它的mac地址来规避一些网络限制。一般笔记本有两个mac地址:有线和无线,其它的一般都是虚拟物理地址(描述中含Virtual) ...

    无线网卡的mac地址在出厂时就被烧录好,在全球是唯一的代表着它的身份。但是我们可以通过修改它的mac地址来规避一些网络限制。一般笔记本有两个mac地址:有线和无线,其它的一般都是虚拟物理地址(描述中含Virtual)

     

    有线网卡的MAC地址修改:

    1、进入有线网卡的网络适配器属性页面,可通过以下两种方法

    ① 通过右键【我的电脑】【管理】进入【计算机管理页面】,点击【系统工具】下的【设备管理器】,找到【网络适配器】,找到需要修改MAC地址的网络适配器

    右键【属性】

    直接进入高级属性窗口,找到网络地址

    ② 通过打【打开网络和共享中心】→【更改适配器设置】找到需要修改的网络。

    右键选择属性,点击配置进入属性页面,找到网络地址

    2、找到属性中的网络地址(NetworkAddress以及类似的),输入想要修改的有线mac地址,输入时不需要输入“-”,即000C29E7B28C这样就行。最后在命令提示窗口中再次输入ipconfig-all或ipconfig /all 或getmac,验证下mac地址是否修改成功。

     

    无线网卡的MAC地址修改:

    1、先进入无线网卡的网络适配器高级属性页面(同有线),会发现高级属性里面并没有网络地址选项。对于此问题就我们可以修改注册码的信息来填加上该选项。

     

    2、 利用快捷键Win+ R ,打开运行窗口输入regedit调出注册表

    3、定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Class

    \{4D36E972-E325-11CE-BFC1-08002BE10318}\

     

    每个00XX的代号代表一个网卡,点击每个编号后,在右侧的DriverDesc值中找到笔记本中的无线网卡的名称,它就是无线网卡的信息。

     

    4、 确定好网卡后有两种方法可以处理:

    ① 这种相对比较麻烦,但是处理后再次修改就比较方便。(建议)

    以我的为例:我的无线网卡编码是0001,打开0001/Ndi/Params 会发现没有NetworkAddress项,右键【新建】【项】,重命名为NetworkAddress。

    找到有线网卡的编码

    打开到0003/Ndi/Params下的NetworkAddress

    将里面的信息在0001下的NetworkAddress里新建一份同样的

    就会发现,无线网的高级属性里出现了网络地址的选项

    填写上想要的MAC地址就可以修改无线网的物理地址了

     

    ②在确定的网卡编号上右键 新建字符串值

    然后重命名为NetworkAddress ,内容是想要填写的MAC值

     

    最后在cmd中查询无线网物理地址就会发现MAC地址已变成你修改的那个值

    注意: 无线网的MAC值的第二个数只能是2 、6、A、E中的一个,否则修改就不会起作用,如060C29E7B28C。

    MAC地址是由48位Bit(6个字节)组成(第一个字节最低位一定是0),在通信中通常表示为12个16进制数。虽然mac地址可以修改,但是不要乱改,至少需要能保证在使用的局域网内是唯一。


    很高兴这篇文章能帮到大家,发现很多人在问:为什么第二个数字只能是2、6、A、E中的一个。这里就给大家简单说下,如有错误的地方还请指教。

    首先我们先了解下MAC地址得组成结构(百度百科中搜索:MAC地址),可知其前3字节表示OUI(Organizationally Unique Identifier),是IEEE的注册管理机构给不同厂家分配的代码来区分不同的厂家,后3字节由厂家自行分配。由该组织统一管理和发放的MAC地址,能够保证在全球范围内是唯一的。而OUI中,有两个位是有特殊含义的,即第一个字节的最低两位。其中最低位表示MAC地址是单播地址还是多播地址(0表示单播),次低位表示是否由IEEE Registeration Authority统一发放(0表示是全局地址)。

    自行修改的MAC地址:最低位是0,次低位是1(表示不是由IEEE统一管理发放的MAC地址),剩下的任意,因此第二个数字可能是:
    0010 - 2
    0110 - 6
    1010 - A
    1110 - E

    这里可查看知乎中一位大神的回答:https://www.zhihu.com/question/21805731

    展开全文
  • Android获取Mac地址-适配所有版本

    万次阅读 多人点赞 2017-10-24 14:37:45
    最近由于项目需要MAC地址的记录,搞了一个通用的适配类,目前经过测试可以适配Android所有版本,我测试过的设备系统Android 4 5 6 7 7+都可以获取到,废话不多说直接上代码,简洁: 该类分为三类:Android6.0以下、...

    最近由于项目需要MAC地址的记录,搞了一个通用的适配类,目前经过测试可以适配Android所有版本,我测试过的设备系统Android 4 5 6 7 7+都可以获取到,废话不多说直接上代码,简洁:

    该类分为三类:Android6.0以下、6.0以上7.0以下、7.0以上

    首先是获取MAC的整合方法:

     

    public static String getMac(Context context) {
    
            String strMac = null;
    
            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
                Log.e("=====", "6.0以下");
                Toast.makeText(context, "6.0以下", Toast.LENGTH_SHORT).show();
                strMac = getLocalMacAddressFromWifiInfo(context);
                return strMac;
            } else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N
                    && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                Log.e("=====", "6.0以上7.0以下");
                Toast.makeText(context, "6.0以上7.0以下", Toast.LENGTH_SHORT).show();
                strMac = getMacAddress(context);
                return strMac;
            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                Log.e("=====", "7.0以上");
                if (!TextUtils.isEmpty(getMacAddress())) {
                    Log.e("=====", "7.0以上1");
                    Toast.makeText(context, "7.0以上1", Toast.LENGTH_SHORT).show();
                    strMac = getMacAddress();
                    return strMac;
                } else if (!TextUtils.isEmpty(getMachineHardwareAddress())) {
                    Log.e("=====", "7.0以上2");
                    Toast.makeText(context, "7.0以上2", Toast.LENGTH_SHORT).show();
                    strMac = getMachineHardwareAddress();
                    return strMac;
                } else {
                    Log.e("=====", "7.0以上3");
                    Toast.makeText(context, "7.0以上3", Toast.LENGTH_SHORT).show();
                    strMac = getLocalMacAddressFromBusybox();
                    return strMac;
                }
            }
    
            return "02:00:00:00:00:00";
        }

     

     

     

    6.0以下方法,Google提供的公有方法,需要权限

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

     

     

     

     

     

    /**
         * 根据wifi信息获取本地mac
         * @param context
         * @return
         */
        public static String getLocalMacAddressFromWifiInfo(Context context){
            WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            WifiInfo winfo = wifi.getConnectionInfo();
            String mac =  winfo.getMacAddress();
            return mac;
        }

     

     

     

    android 6.0及以上、7.0以下

    android 6.0以后 将不再能通过 wifimanager 获取mac,获取到的mac将是固定的:02:00:00:00:00:00
    然而我开发的sdk就是通过wifimanager获取的mac。
    android sdk后来做了6.0适配,通过cat /sys/class/net/wlan0/address,可以在6.0上获取mac地址。

     

     

     /**
         * android 6.0及以上、7.0以下 获取mac地址
         *
         * @param context
         * @return
         */
        public static String getMacAddress(Context context) {
    
            // 如果是6.0以下,直接通过wifimanager获取
            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
                String macAddress0 = getMacAddress0(context);
                if (!TextUtils.isEmpty(macAddress0)) {
                    return macAddress0;
                }
            }
    
            String str = "";
            String macSerial = "";
            try {
                Process pp = Runtime.getRuntime().exec(
                        "cat /sys/class/net/wlan0/address");
                InputStreamReader ir = new InputStreamReader(pp.getInputStream());
                LineNumberReader input = new LineNumberReader(ir);
    
                for (; null != str; ) {
                    str = input.readLine();
                    if (str != null) {
                        macSerial = str.trim();// 去空格
                        break;
                    }
                }
            } catch (Exception ex) {
                Log.e("----->" + "NetInfoManager", "getMacAddress:" + ex.toString());
            }
            if (macSerial == null || "".equals(macSerial)) {
                try {
                    return loadFileAsString("/sys/class/net/eth0/address")
                            .toUpperCase().substring(0, 17);
                } catch (Exception e) {
                    e.printStackTrace();
                    Log.e("----->" + "NetInfoManager",
                            "getMacAddress:" + e.toString());
                }
    
            }
            return macSerial;
        }
    
        private static String getMacAddress0(Context context) {
            if (isAccessWifiStateAuthorized(context)) {
                WifiManager wifiMgr = (WifiManager) context
                        .getSystemService(Context.WIFI_SERVICE);
                WifiInfo wifiInfo = null;
                try {
                    wifiInfo = wifiMgr.getConnectionInfo();
                    return wifiInfo.getMacAddress();
                } catch (Exception e) {
                    Log.e("----->" + "NetInfoManager",
                            "getMacAddress0:" + e.toString());
                }
    
            }
            return "";
    
        }
    
        /**
         * Check whether accessing wifi state is permitted
         *
         * @param context
         * @return
         */
        private static boolean isAccessWifiStateAuthorized(Context context) {
            if (PackageManager.PERMISSION_GRANTED == context
                    .checkCallingOrSelfPermission("android.permission.ACCESS_WIFI_STATE")) {
                Log.e("----->" + "NetInfoManager", "isAccessWifiStateAuthorized:"
                        + "access wifi state is enabled");
                return true;
            } else
                return false;
        }
    
        private static String loadFileAsString(String fileName) throws Exception {
            FileReader reader = new FileReader(fileName);
            String text = loadReaderAsString(reader);
            reader.close();
            return text;
        }
    
        private static String loadReaderAsString(Reader reader) throws Exception {
            StringBuilder builder = new StringBuilder();
            char[] buffer = new char[4096];
            int readLength = reader.read(buffer);
            while (readLength >= 0) {
                builder.append(buffer, 0, readLength);
                readLength = reader.read(buffer);
            }
            return builder.toString();
        }

     

     

     

     

     

     

    android 7.0及以上

     

    android 7.0 后,通过上述适配的方法,将获取不到mac地址。

    经过调研和测试,7.0上仍有办法回去mac地址:

    总共分为三种方式:

     

    (1)通过ip地址来获取绑定的mac地址

    (2)扫描各个网络接口获取mac地址

    (3)通过busybox获取本地存储的mac地址

     

     

    代码如下:

     

    /**
         * 根据IP地址获取MAC地址
         *
         * @return
         */
        public static String getMacAddress() {
            String strMacAddr = null;
            try {
                // 获得IpD地址
                InetAddress ip = getLocalInetAddress();
                byte[] b = NetworkInterface.getByInetAddress(ip)
                        .getHardwareAddress();
                StringBuffer buffer = new StringBuffer();
                for (int i = 0; i < b.length; i++) {
                    if (i != 0) {
                        buffer.append(':');
                    }
                    String str = Integer.toHexString(b[i] & 0xFF);
                    buffer.append(str.length() == 1 ? 0 + str : str);
                }
                strMacAddr = buffer.toString().toUpperCase();
            } catch (Exception e) {
    
            }
    
            return strMacAddr;
        }
    
    /**
         * 获取移动设备本地IP
         *
         * @return
         */
        private static InetAddress getLocalInetAddress() {
            InetAddress ip = null;
            try {
                // 列举
                Enumeration<NetworkInterface> en_netInterface = NetworkInterface
                        .getNetworkInterfaces();
                while (en_netInterface.hasMoreElements()) {// 是否还有元素
                    NetworkInterface ni = (NetworkInterface) en_netInterface
                            .nextElement();// 得到下一个元素
                    Enumeration<InetAddress> en_ip = ni.getInetAddresses();// 得到一个ip地址的列举
                    while (en_ip.hasMoreElements()) {
                        ip = en_ip.nextElement();
                        if (!ip.isLoopbackAddress()
                                && ip.getHostAddress().indexOf(":") == -1)
                            break;
                        else
                            ip = null;
                    }
    
                    if (ip != null) {
                        break;
                    }
                }
            } catch (SocketException e) {
    
                e.printStackTrace();
            }
            return ip;
        }
    
        /**
         * 获取本地IP
         *
         * @return
         */
        private static String getLocalIpAddress() {
            try {
                for (Enumeration<NetworkInterface> en = NetworkInterface
                        .getNetworkInterfaces(); en.hasMoreElements(); ) {
                    NetworkInterface intf = en.nextElement();
                    for (Enumeration<InetAddress> enumIpAddr = intf
                            .getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
                        InetAddress inetAddress = enumIpAddr.nextElement();
                        if (!inetAddress.isLoopbackAddress()) {
                            return inetAddress.getHostAddress().toString();
                        }
                    }
                }
            } catch (SocketException ex) {
                ex.printStackTrace();
            }
            return null;
        }

     

     

     

     

     

     

    <span style="color:#cc33cc"> /**
         * android 7.0及以上 (2)扫描各个网络接口获取mac地址
         *
         */
        /**
         * 获取设备HardwareAddress地址
         *
         * @return
         */
        public static String getMachineHardwareAddress() {
            Enumeration<NetworkInterface> interfaces = null;
            try {
                interfaces = NetworkInterface.getNetworkInterfaces();
            } catch (SocketException e) {
                e.printStackTrace();
            }
            String hardWareAddress = null;
            NetworkInterface iF = null;
            if (interfaces == null) {
                return null;
            }
            while (interfaces.hasMoreElements()) {
                iF = interfaces.nextElement();
                try {
                    hardWareAddress = bytesToString(iF.getHardwareAddress());
                    if (hardWareAddress != null)
                        break;
                } catch (SocketException e) {
                    e.printStackTrace();
                }
            }
            return hardWareAddress;
        }
    
        /***
         * byte转为String
         *
         * @param bytes
         * @return
         */
        private static String bytesToString(byte[] bytes) {
            if (bytes == null || bytes.length == 0) {
                return null;
            }
            StringBuilder buf = new StringBuilder();
            for (byte b : bytes) {
                buf.append(String.format("%02X:", b));
            }
            if (buf.length() > 0) {
                buf.deleteCharAt(buf.length() - 1);
            }
            return buf.toString();
        }</span>

     

     

     

     

     

     

    <span style="color:#000099"> /**
         * android 7.0及以上 (3)通过busybox获取本地存储的mac地址
         *
         */
    
        /**
         * 根据busybox获取本地Mac
         *
         * @return
         */
        public static String getLocalMacAddressFromBusybox() {
            String result = "";
            String Mac = "";
            result = callCmd("busybox ifconfig", "HWaddr");
            // 如果返回的result == null,则说明网络不可取
            if (result == null) {
                return "网络异常";
            }
            // 对该行数据进行解析
            // 例如:eth0 Link encap:Ethernet HWaddr 00:16:E8:3E:DF:67
            if (result.length() > 0 && result.contains("HWaddr") == true) {
                Mac = result.substring(result.indexOf("HWaddr") + 6,
                        result.length() - 1);
                result = Mac;
            }
            return result;
        }
    
        private static String callCmd(String cmd, String filter) {
            String result = "";
            String line = "";
            try {
                Process proc = Runtime.getRuntime().exec(cmd);
                InputStreamReader is = new InputStreamReader(proc.getInputStream());
                BufferedReader br = new BufferedReader(is);
    
                while ((line = br.readLine()) != null
                        && line.contains(filter) == false) {
                    result += line;
                }
    
                result = line;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }</span>

     

     

     

     

     

     

     

    展开全文
  • 动态MAC地址和静态MAC地址

    千次阅读 2020-06-02 22:09:14
    MAC地址表是交换机进行数据帧转发时所使用的一个非常关键的数据表。每一台 交换机都会维护自己的MAC地址表,掌握MAC地址表的相关配置及管理是非常有必 要的。 1.查看MAC地址表 在华为交换机上,使用display mac-...

    MAC地址表项

    MAC地址表是交换机进行数据帧转发时所使用的一个非常关键的数据表。

    查看MAC地址表

    如下图所示的网络拓扑中:

    在这里插入图片描述
    通过命令查看SW1的MAC地址表项信息:
    在这里插入图片描述

    • 从SW1的MAC地址表可以看出,其GE0/0/1接口连接着一台加入VLAN10的设备,该设备的MAC地址为5489-985b-17af(上图中的PC),
    • SW1的GE0/0/2接口连接着一台加入VLAN20的设备(上图中的Server),该设备MAC地址为5489-987e-10d0。
    • 从上图所示的网络拓扑中,SW1与SW2之间还部署了链路聚合技术(Link Aggregation ),即SW1与SW2之间存在多个互联接口被聚合成一个逻辑接口(Eth-trunk 1)。
    • SW1的Eth-trunkl接口连接着一台加入VLAN200的设备,且该设备的MAC地址为4clf-ccab-ea87,这是SW2的MAC地址。
    • 当这些设备之间需要相互通信时,数据帧在到达SW1后,SW1便可通过查询MAC地址表进行数据帧转发。

    动态MAC表项

    • 如上图所示的网络拓扑中,初始时,交换机的MAC地址表是空的(比如SW1),随着网络中的各台设备陆续开始发送数据(一般通过泛洪实现),交换机也在各个接口上学习MAC地址,并持续维护自己的MAC地址表。
    • 当网络稳定后(数据转发不再依靠泛洪,而是通过Mac地址表寻址实现),SW1的MAC地址表中看到PC、Server和SW2的MAC地址,并且这些MAC地址表项都是动态的(类型为dynamic )。

    动态MAC表项的老化机制

    • 一个动态的MAC地址表项被加载到交换机的MAC地址表后,其老化计时器也就随即启动,并开始倒计时,当该计时器计数到0时,这个MAC表项将被删除。
    • 在交换机每收到一个数据帧时,MAC地址表中与该数据帧的源MAC地址对应的表项也会被刷新,该表项的老化计时器将被复位并重新开始倒计时。
    • 交换机缺省的动态MAC地址表项老化时间为300s(HW),在系统视图下执行mac-address aging-time命令(HW)可修改动态MAC表项的老化时间。但是在实际的网络中不建议随意修改该老化时间。

    动态MAC地址学习数量

    问题背景

    • 交换机MAC地址表的容量是有限的,
    • 如果网络中存在MAC地址泛洪攻击时,交换机的MAC地址表可能会瞬间被大量垃圾MAC地址表项填满,在很短的时间内,MAC
      地址表项资源可能就会被耗尽,因此当交换机收到合法的数据帧时,就无法再进行MAC地址学习了,数据帧的转发必将产生问题。

    解决方法

    • 可以在交换机特定端口上限制MAC地址学习数量,解决上述问题。
    • 当交换机某个端口MAC地址数量达到所设的上限时,该端口将不再学习MAC地址。(网络发生Mac地址泛洪时,一般指的的某个端口或许某些端口收到大量未知单播、组播或者广播报文,如果在受到Mac地址攻击的端口上配置限制MAC地址学习数量,可以避免该端口无限制的学习Mac地址,减少Mac地址表项资源的浪费,为交换机的其他端口学习合法数据帧的Mac地址表项预留了资源)
    • 在特定接口的配置视图下,执行mac-limit maximum max-num命令(HW),可限制该接口的MAC地址学习数量。
    • 在特定接口的配置视图下,执行mac-limit action { discard | forward}命令(HW),可配置当MAC地址数量达到限制后,交换机对数据帧执行的操作:
      (1)当指定的action为discard时,在MAC地址表项数量达到限制后,若该接口收到的数据帧的源MAC地址为新的MAC地址时,丢弃这些帧。此行为是缺省动作。
      (2)当指定的action为forward时,在MAC地址表项数量达到限制后,若该接口收到的数据帧的源MAC地址为新的MAC地址时,转发这些帧,但是不记录MAC地址表项。
    • 在特定接口的配置视图下,执行mac-limit alarm { disable | enable}命令(HW),可配置当MAC地址数量达到限制后是否进行告警:
      (1)如果指定关键字是enable,则当MAC地址数量达到限制后进行告警,该行为是缺省动作。
      (2)如果指定关键字是disable,则不告警。

    静态MAC表项

    问题背景——MAC地址漂移

    • 交换机可以动态的学习MAC地址,但是在某种场景下是不可靠的。
    • 在上图所示的网络拓扑中:
      (1)若SW1的GE0/0/3接口连接一台PC,该PC以Server的MAC地址为源进行数据帧伪造,然后持续不断地向交换机发送这些非法的数据帧,
      (2)那么在SW1的MAC地址表中,关于该MAC地址的表项将会不断地在GEO/0/3及GEO/0/2之间来回出现,这种现象被称为“MAC地址漂移”。
      (3)当交换机将这个MAC地址关联到GE0/0/3接口时,所有发往Server的数据帧将无法准确地到达目的地,与Server相关的业务势必会受到影响。

    解决方法

    • 通过为SW1配置静态MAC表项可以规避上述问题。

    • SW1的配置如下:[SWl]mac-address staric 5489-987e-10d0 Gigabiet 0/0/2 vlan 20,通过该命令可以配置一条静态Mac地址表项。

    • 配置成功之后,可以通过命令查看Mac地址表项信息:
      在这里插入图片描述

    • 静态的Mac表项是永远不会被老化的,

    • 并且其优先级比动态表项更高,这意味着当SW1再从GE0/0/3接口收到以Server的MAC地址为源的数据帧时,SW1会将这些数据帧丢弃。因此,通过设置静态MAC表项,可以确保与交换机固定连接的可信任节点的安全通信

    展开全文
  • MAC地址,也就是网卡,对于单网卡来说是唯一的(64位)十六进值的物理地址,它是在出前厂就已经分配好了的。 每一个物理设备都有一个唯一对应的MAC地址MAC地址绑定IP地址,是网络管理常用的一种方式。 一、查看mac ...
  • MAC地址攻击

    千次阅读 2019-08-26 12:48:06
    Mac地址攻击 : 攻击者不断修改自己的MAC地址,交换机进行大量学 习,导致交换机mac地址表缓存溢出,不能再学习其他的Mac地址信息, 此时交换机将工作在hub状态 解决方案: 1.静态MAC地址写入 2.端口安全 3.基于MAC...
  • MAC地址的组成 mac地址都是由IEEE的注册管理机构RA分配给厂商,分配时只分配前三个字节,后三个字节由各厂商自行分配 mac地址由IEEE组织统一管理,所有合法的mac地址都可以通过IEEE官网查询到厂商 IEEE组织会定期...
  • SW转发与MAC地址

    千次阅读 多人点赞 2020-07-16 12:18:26
    文章目录一、MAC地址表二、拓扑三、基础配置与分析四、SW的数据转发五、MAC地址表安全5.1 攻击原理5.2 防御措施 一、MAC地址表 1、作用: MAC表记录了相连设备的MAC地址、接口号以及所属的VLAN ID之间的对应关系。在...
  • 1.在线MAC地址查询: 这个在线工具可以根据MAC地址查询网卡厂商信息。工具链接:http://www.atoolbox.net/Tool.php?Id=808 2. 在线MAC地址生成器: 这个在线工具可随机生成指定组MAC地址。工具链接:...
  • MAC地址漂移

    千次阅读 2019-03-20 22:00:55
    MAC地址漂移是指一个MAC地址有俩个出接口,后学习到的出接口覆盖了原有的出接口,使MAC地址表象的出接口发生了变更
  • MAC地址MAC地址字符串 到 MAC地址数值的 转换 MAC地址为48位,所以可以用 unsigned char mac[6]来表示,其中我们通用的输入是类似于: dd:00:ff:44:44:22 因此也就是: mac[0] = 0xdd (这里的dd表示是
  • mac os 更改mac地址

    千次阅读 2018-09-19 16:23:46
    mac os 更改mac地址 ifconfig en0 | grep ether openssl rand -hex 6 | sed ‘s/(…)/\1:/g; s/.$//’ | xargs sudo ifconfig en0 ether 这样再通过第一个命令就可以看到修改后的mac地址。 如果发现网络有不...
  • 修改蓝牙MAC地址

    千次阅读 2018-10-30 12:30:45
    根据文档找到了 重命名--读MAC--写MAC 是不一样的 ...在手机和蓝牙匹配的时候 没有到我和手机通讯这一层 手机就已经拿到我的MAC地址了 所以我需要修改的是MAC地址。 我上午遇到一个问题 :我手上有...
  • 苹果电脑修改Mac地址方法

    万次阅读 2018-06-01 15:22:04
    当某个环境下,只能指定网卡上网时,这个方法你就爽歪歪了networksetup -listallhardwareports 查看当前所有端口Mac地址sudo ifconfig en1 ether e4:ce:8f:32:51:82 修改en1是WiFi标记 e4:ce:8f:32:51:82 是目标Mac...
  • 全球MAC地址与本地MAC地址

    千次阅读 2014-12-01 17:14:22
    苹果在IOS8中, Wi-Fi scanning behavior has changed to use random, locally administrated MAC addresses ... ...本地MAC地址 在最高字节,即通常写MAC时的第一个字节 最低bit位的第2个bit 这个b
  • MAC地址和IP地址的区别

    万次阅读 2019-04-20 13:54:30
    网络管理一般就是在网络层针对IP地址进行管理,但由于一台计算机的IP地址可以由用户自行设定,管理起来相对困难,MAC地址一般不可更改,所以把IP地址同MAC地址组合到一起管理就成为常见的管理方式。 一. 什么是MAC...
  • 本文介绍使用OpenWrt限制特定mac地址的方法,一种是使用无线网络的mac地址过滤,一种是使用Iptables防火墙阻止策略。 一。使用mac-filter功能限制mac地址上网 方法1.web界面: 定位到菜单Network->wifi,如下...
  • netcfg 下面是实例,可以看到ip和mac地址。 127|root@N1:/ # netcfg rmnet_data7 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00 rmnet_data5 DOWN 0.0.0.0...
  • 生成MAC地址

    千次阅读 2019-07-15 20:57:12
    生成100个MAC地址并写入文件中,MAC地址前6位(16进制)为01-AF-3B 01-AF-3B 01-AF-3B-xx 01-AF-3B-xx-xx 01-AF-3B-xx-xx-xx import string #引入字符串 import random #引入随机 #print(string.hexdigits(16进制)...
  • ubuntu查看MAC地址

    万次阅读 2019-03-27 10:57:29
    1. ifconfig ether为MAC地址 2. cat /sys/class/net/wlp2s0/address 3.查看连接到这个电脑上面的ip对应的mac地址 cat /proc/net/arp
  • python获取mac地址,生成mac地址

    千次阅读 2013-01-04 14:32:25
    项目开发过程中需要用到获取linux的mac地址,并生成mac地址给虚拟机使用,将搜索整理如下: 1. 获取mac地址(最简单的方式): def get_local_mac(): return uuid.uuid1().hex[-12:] 2. 生成mac地址mac...
  • MAC地址欺骗和MAC地址泛红攻击,是很古老的二层攻击手法,现在也很少用在网络攻击实战中,但对于其攻击原理却很值得学习,本文通过eNSP抓包的实践方式,充分学习了这两种攻击的手段,使我们对二层网络攻击有了更深刻...
  • 修改MAC地址的方法

    千次阅读 2019-11-20 09:27:43
    修改MAC地址时,一定要在纯DOS环境下修改。目前使用U盘DOS引导盘来刷新BIOS及重写MAC地址是最方便的。只要U盘可DOS引导,就可在映泰主板上开机按F9选择USB设备引导来重写MAC地址(或刷新BIOS)。 U盘DOS启动盘制作...
  • 获取Windows环境和Linux环境下的一些机器信息,包括:主板序列号、MAC地址、CPU序列号。 import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.IOException; import ...
  • js获取客户端MAC地址

    万次阅读 2018-12-05 17:18:58
    最近遇到一个需求,医院要求呼叫中心账号必须对应MAC地址,也就是说该MAC地址必须和呼叫中心账号对应才可使用,这可就难道我了,这...问题二:每台电脑上都有多个MAC地址,那么应该选用哪一个MAC地址 MAC地址是每台...
  • MAC地址的意义及作用?(mac)

    万次阅读 多人点赞 2018-09-19 21:52:39
    MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC地址,它由厂商写在网卡的BIOS里。MAC地址可采用6字节(48比特)或2字节(16比特)这两种中的任意一...
  • ubuntu查询mac地址

    千次阅读 2020-02-19 09:53:59
    命令1:sudo lshw -c network | grep serial 命令2:ifconfig,ubuntu16.04 HWaddr后面的为mac地址,ubuntu18.04 ether后面的为mac地址
  • /** 获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetmacAddr{ var $result = array(); // 返回带有MAC地址的字串数组 var $macAddr; /*构造*/ function...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,683
精华内容 23,473
关键字:

mac地址