MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址
Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)。
对于MAC地址,由于我们不直接和它接触,所以大家不一定很熟悉。在OSI(Open System Interconnection,开放系统互连)7层网络协议(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)参考模型中,第二层为数据链路层(Data Link)。它包含两个子层,上一层是逻辑链路控制(LLC:Logical Link Control),下一层即是我们前面所提到的MAC(Media Access Control)层,即介质访问控制层。所谓介质(Media),是指传输信号所通过的多种物理环境。常用网络介质包括电缆(如:双绞线,同轴电缆,光纤),还有微波、激光、红外线等,有时也称介质为物理介质。MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。这个地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,它都有相同的MAC地址,MAC地址一般不可改变,不能由用户自己设定。
MAC地址前24位是由生产厂家向IEEE申请的厂商地址。后24位就由生产厂家自行定拟了。(早期的2字节的却不用申请)
一:IP地址和Mac地址有什么联系和区别
对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址。IP地址由用点分隔开的4个8八位组构成,如192.168.0.1就是一个IP地址,这种写法叫点分十进制格式。IP地址由网络地址和主机地址两部分组成,分配给这两部分的位数随地址类(A类、B类、C类等)的不同而不同。网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机。一个IP地址使得将来自源地址的数据通过路由而传送到目的地址变为可能。
现在有很多计算机都是通过先组建局域网,然后通过交换机和Internet连接的。然后给每个用户分配固定的IP地址,由管理中心统一管理,这样为了管理方便就需要使用Mac地址来标志用户,防止发生混乱,明确责任(比如网络犯罪)。另外IP地址和Mac地址是有区别的,虽然他们在局域网中是一一对应的关系。IP地址是跟据现在的IPv4标准指定的,不受硬件限制比较容易记忆的地址,而Mac地址却是用网卡的物理地址,多少与硬件有关系,比较难于记忆。
MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(Istitute of Electrical and Electronics Engineers,电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三个字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。
既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么还需要为每台主机再分配一个IP地址呢?或者说为什么每台主机都分配唯一的IP地址了,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的MAC地址呢?主要原因有以下几点:(1)IP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。(2)当存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。(3)无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。下面我们来通过一个例子看看IP地址和MAC地址是怎样结合来传送数据包的。
假设网络上要将一个数据包(名为PAC)由临沭的一台主机(名称为A,IP地址为IP_A,MAC地址为MAC_A)发送到北京的一台主机(名称为B,IP地址为IP_B,MAC地址为MAC_B)。这两台主机之间不可能是直接连接起来的,因而数据包在传递时必然要经过许多中间节点(如路由器,服务器等等),我们假定在传输过程中要经过C1、C2、C3(其MAC地址分别为M1,M2,M3)三个节点。A在将PAC发出之前,先发送一个ARP请求,找到其要到达IP_B所必须经历的第一个中间节点C1的MAC地址M1,然后在其数据包中封装(Encapsulation)这些地址:IP_A、IP_B,MAC_A和M1。当PAC传到C1后,再由ARP根据其目的IP地址IP_B,找到其要经历的第二个中间节点C2的MAC地址M2,然后再将带有M2的数据包传送到C2。如此类推,直到最后找到带有IP地址为IP_B的B主机的地址MAC_B,最终传送给主机B。在传输过程中,IP_A、IP_B和MAC_A不变,而中间节点的MAC地址通过ARP在不断改变(M1,M2,M3),直至目的地址MAC_B。
二:如何知道自己的Mac地址
方法比较多,也比较简单,在这里介绍两种常用的方法,在Win9x 可用:WinIPcfg获得,在2000、XP可用IPconfig -all获得。如果你已经给自己的网卡分配了IP,还可以用 nbtstat -A 自己的IP,后者只能在2000/XP下使用。
在Windows 98/Me中,依次单击“开始”→“运行” →输入“winipcfg”→回车。
在Windows 2000/XP中,依次单击“开始”→“运行”→输入“CMD”→回车→输入“ipconfig /all”→回车。
也可以用 nbtstat -A IP地址(还可以获得别的东东,可别学坏啊)。另外同一局域网内的,你可以用ping IP 或者ping 主机名,然后用arp -a 来获得。
三:为什么要修改MAC地址
为什么要修改MAC地址,到底有什么实际意义呢?简单的说,MAC地址相当于你的网络标识,在局域网里,管理人员常常将网络端口与客户机的MAC地址绑定,方便管理,万一你的网卡坏掉了,换一张网卡必须向管理人员申请更改绑定的MAC地址,比较麻烦。如果这时我们又急于使用MAC以便上网。这时候,我们直接在操作系统里更改一下MAC,就可以跳过重新申请这一步,减少了很多麻烦。
另外,当你使用黑客软件对别人的机器进行攻击时,别人的防火墙获取到你的IP地址,就可以通过“Nbtstat -A ip地址”命令获取你的MAC,如果你改一下,呵呵,查到的MAC就不是你的了。(可别说我教你学坏啊!)
四:如何修改自己的Mac地址
Mac地址是保存在网卡的EPROM里面,通过网卡生产厂家提供的修改程序可以更改存储器里的地址,即使网卡没有这样的设置我们也可以通过间接的方法修改,一般网卡发出的包的源Mac地址并不是网卡本身写上去的,而是应用程序提供的,只是在通常的实现中,应用程序先从网卡上得到Mac地址,每次发送的时候都用这个Mac做为源Mac而已,Windows中,网卡的Mac保存在注册表中,实际使用也是从注册表中提取的,所以只要修改注册表就可以简单的改变Mac
Win9x中修改:
打开注册表编辑器,在HKEY_LOCAL_MacHINE\SYSTEM\CurrentControlSet\Service\Class\Net\下的0000,0001,0002
Win2000/XP中的修改:同样打开注册表编辑器,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E970-E325-11CE-BFC1-08002BE10318 中的0000,0001,0002中的DriverDesc,如果在0000找到,就在0000下面添加字符串变量,命名为NetworkAddress,值为要设置的Mac地址,例如:000102030405。完成上述操作后重启就好了。
Linux下的修改:
必须关闭网卡设备,否则会报告系统忙,无法更改。
命令是:/sbin/ifconfig eth0 down;.修改Mac地址,这一步较Windows中的修改要简单。命令是:/sbin/ifconfig eth0 hw ether 00 AA�BB CC DD EE;重新启用网卡,/sbin/ifconfig eth0 up网卡的Mac地址更改就完成了。
如果你要经常改换地址的话在注册表里改来改去的方法就实在是太繁琐了。不用担心,用下面的方法可以使你的修改更方便,更简单。
现以Windows 2000/XP为例来简要说明一下:第一步,单击“开始”→“运行”→输入“Regedit”,打开注册表编辑器,按Ctrl+F打开查找窗,输入“DriverDesc”单击确定。
双击找到的内容,即为你要修改的网卡的信息描述,左边数形列表显示当前主键(比如0000)。第二步,在相应的0000下新建一串值,命名为NetworkAddress,键值设为你要的MAC地址,注意要连续写,如112233445566。第三步,重新启动计算机,你就会发现网卡MAC地址已经改变为你所设置的地址。第四步,在相应的0000下的Ndi\Params中加一项,主键名为NetworkAddress,然后在该主键下添加名为default的串值,其值设为你要设的MAC地址,同样也要连续地写。第五步,在NetworkAddress主键下继续添加名为ParamDesc的字符串,其值可设为“MAC Address”。
全部设置完成了,关闭注册表,重新启动计算机,打开“网络邻居”的属性,选择相应的网卡,单击“属性”选择“高级”选项卡,属性中会多出MAC Address的选项,也就是在上面第二步在注册表中添加的NetworkAddress项,以后只要在此处的设置值中修改MAC地址就可以了。
五:如何捆绑MAC地址和IP地址
进入“MS-DOS方式”或“命令提示符”,在命令提示符下输入命令:ARP - s 10.88.56.72 00-10-5C-AD-72-E3,即可把MAC地址和IP地址捆绑在一起。
对于自行修改MAC地址入网,网管员还是有办法侦测出来的。因此,换网卡后别忘记跟网管打个招呼,重新绑定啊。
2004.2.15
MAC地址是指介质访问控制(Media Access Control ,简称MAC)地址,是厂商生产的网卡的地址,对于每一台设备是唯一的,该地址定义了计算机间的网络连接,记录在网络接口卡(Network Interface Card ,NIC)上的硬件电路上。介质访问控制地址是由12位16进制数(O~F)共48位表示,前24位标识网络接口卡的厂商,不同厂商生产的标识不同,后 24位是由厂商指定的网络接口卡序列号。
就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)。
网卡上的一个标识,相当于网卡的序列号。
在网络上是用来确认计算机的物理地址的。
MAC 介质访问控制
MAC地址:称为MAC位址、硬件地址