Mac地址
Mac地址是每张网卡的唯一标识符,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时烧在网卡的ROM中,可以修改。现在的Mac地址一般都采用6字节48bit(还有2字节16bit的Mac地址,多在局域网中使用),前3字节由各个企业向IEEE的RA机构购买,后3个字节由企业自己决定。
IEEE规定地址字段的第一字节的最低位为I/G比特,I/G表示Individual/Group。当I/G比特为0时,地址字段表示一个单播地址。当I/G比特为1的时候表示组地址,用来表示多播。因此,IEEE只分配地址字段的前3各字节中的23bit,当I/G比特分别为0和1时,一个地址块可以分别生成2^24个单个站地址和组播地址。但是IEEE制订的二进制EUI-48地址就有两种不同的记法(假设第一个字节为10000000):
802.5和802.6采用的标准,这种记法将最高位写在最左边,则I/G位为1。
802.3和802.4采用的标准。这种记法将每一个字节的高比特位写在最右边,I/G位为0
考虑到并不是所有的厂商都愿意购买机构唯一标志符,因此,IEEE将地址字段的第一字节的最低第2位规定成为G/L比特(Global/Local),G表示这个地址为全球管理,字段值为1,L表示为本地管理,这时用户可以任意分配网络上的地址。
但是应当指出的是,以太网几乎不使用G/L比特。
Linux下的修改Mac:
/sbin/ifconfig eth0 down #关闭网卡
/sbin/ifconfig eth0 hw ether 00 AA BB CC DD EE #设置Mac 2c:d2:3g:03:ab:0b
/sbin/ifconfig eth0 up #启动网卡,重启后并没有修改成功
参考
《计算机网络》 6edition 谢希仁
http://blog.csdn.net/starshift/article/details/1613398
http://yanlong130.blog.163.com/blog/static/3754584320079141404794/
Mac地址的更多相关文章
- Java获取本机的IP与MAC地址
有些机器有许多虚拟的网卡,获取IP地址时会出现一些意外,所以需要一些验证: // 获取mac地址 public static String getMacAddress() { try { Enumer ...
- C#/VB.NET 获取电脑属性(硬盘ID、硬盘容量、Cpu序列号、MAC地址、系统类型)
在开发过程中,经常需要获取电脑的一些属性,如获取硬盘ID/CPU序列号/MAC地址作为来加密字符串. 1.硬盘 在我查看网上一些文档时,发现很多人对硬盘序列号很模糊~ 什么叫硬盘序列号?指的是作为一个 ...
- (转载)详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表
郑重声明:原文转载于http://dengqi.blog.51cto.com/5685776/1223132 向好文章致敬!!! 一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理 ...
- 手机电脑Mac地址修改方法
1.什么是Mac地址? MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置.在O ...
- Web获取客户端物理MAC地址(ocx插件)
主要是通过ActiveX控件 从本地获取到MAC地址,传入到浏览器打开的网页中,再提交到服务器. 具体详解与步骤看文档中: 文件实例包下载 DotNetFX 文件夹附件文件:(可能安装时需用) dot ...
- php获取网卡MAC地址源码
<?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetMacAddr{ var $return_array = ...
- 路由转发过程的IP及MAC地址变化
A-----(B1-B2)-----(C1-C2)-------E就假设拓扑图是这个样子吧,B1和B2是路由器B上的两个接口,C1和C2是路由器C上的两个接口,A和E是PC,由主机A向主机E发送数据包 ...
- C#获得MAC地址(网卡序列号)代码
代码如下: //获得网卡序列号 //MAc地址 http://www.cnblogs.com/sosoft/ public string GetMoAddress() { string MoAddre ...
- java支持跨平台获取cpuid、主板id、硬盘id、mac地址 (兼容windows、Linux)
windows: package cn.net.comsys.helper.system.info; import java.io.BufferedReader; import java.io.F ...
随机推荐
- ORB-SLAM(五)优化
ORB-SLAM作为单目SLAM,其精度很大程度上决定于帧与帧之间的位姿优化的是否准确.因此优化(optimization)在ORB-SLAM里面扮演了很重要的角色.这一小节探讨一下ORB-SLAM里 ...
- Linux编译工具:gcc入门
1. 什么是gcc gcc的全称是GNU Compiler Collection,它是一个能够编译多种语言的编译器.最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还 ...
- winform开发 总结1>winform程序使用线程的必要性,以及正确的使用方式
winform程序中使用线程的必要性: 单线程操作在执行耗时任务时会造成界面假死,带来非常差劲的用户体验,有时候甚至会影响到正常的业务执行,使用多线程做相关操作实属不得已之举. 那么在编写程序之前必须 ...
- AnjularJS系列5 —— scopes、module、controller
第五篇, scopes.module.controller 这一篇,感觉,在前面几篇就使用过的属性,但,总觉得没有理解透彻,有待完善!~ 1.scopes A.定义:$scope是一个把view(一个 ...
- nginx本地转发
在conf文件下找到nginx.conf配置文件:添加如下代码:
- U盘存放大于4G数据文件且无须格式化U盘的解决方法
现在优盘的容量越来越大了,价格越来越便宜,可是它也有个缺点,因为它默认的文件系统是"FAT32",这种文件系统最大只能保存4G的文件,超过4G的文件就不能保存在优盘上了,这样就不能 ...
- Swift-UIButton
// let bt = UIButton(frame:CGRectMake(10,20,50,50)) let button = UIButton(frame:CGRectMake(10, 150, ...
- 深入理解Java中的String
一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Ser ...
- 关于C中内存操作
from:http://blog.csdn.net/shuaishuai80/article/details/6140979 malloc.calloc.realloc的区别 C Language ...
- Excel—使用条件格式标注今日值班者
如下图所示值班表: Step1:选中A2:G2,调出条件格式,在条件格式中,使用公式确定单元格. Step2: 在公式栏中填入以下公式: =TEXT(TODAY(),"aaaa") ...