欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

mac地址真的是全球是唯一的吗 有大用 有大大用

问题:mac地址真的是全球是唯一的吗

答:不是

mac地址在百科中的描述如下:


MAC(Media Access Control,介质访问控制)地址,也叫硬件地址,长度是48比特(6字节),由16进制的数字组成,分为前24位和后24位:
  • 前24位叫做组织唯一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。
  • 后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。

MAC地址对应于OSI参考模型的第二层数据链路层,工作在数据链路层的交换机维护着计算机MAC地址和自身端口的数据库,交换机根据收到的数据帧中的“目的MAC地址”字段来转发数据帧。



MAC地址与IP地址区别
IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:
  1. 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址是基于网络拓扑设计出的,同一台设备或计算机上,改动IP地址是很容易的(但必须唯一),而MAC则是生产厂商烧录好的,一般不能改动。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址不可由本地连接内的配置进行修改。如果一个计算机的网卡坏了,在更换网卡之后,该计算机的MAC地址就变了。
  2. 长度不同。IP地址为32位,MAC地址为48位。
  3. 分配依据不同。IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商。
  4. 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。

注:看完百科的解释,似乎mac地址真的是全球是唯一。但是mac地址一般存放在EPROM/EEPROM里,大家都知道,这种ROM是可修改的,这点就证明存在这种可擦除ROM里的mac可能会被修改。


新问题:用户自己修改mac是很容易就造成mac地址冲突的。当mac地址冲突了怎么办?

mac地址冲突场景:同一个局域网里如果有两个phy芯片的mac地址一样,系统会报出mac地址冲突的异常,此时两个phy都不能正常传输数据

解决方法就是把冲突的地址改成不一样就行。

注:不同局域网中的mac地址即使一样也不会造成冲突,毕竟网关不一样了。

来自  https://blog.csdn.net/renlonggg/article/details/78435986



网卡的MAC地址全世界唯一的吗?有没有重复的?是几位?

 我来答  举报
叛逆战刃 
2018-12-08
正规网卡MAC物理地址通过授权2113,基本可以视作唯一不重复5261,但是我个人4102认为还是有极小到忽略不计1653几率会重复,因为概率过小导致无法发现了。
但世界上接入终端设备是各种各样,其中就有大量的单片机,不是所有设备都通过正规授权的,MAC设置更加可以说是随心所欲,所以,100%肯定MAC地址有重复。只不过几率也太小,比中500W的几率都小。
emdryform 
推荐于2016-07-31
理论上是唯一的,实际上可能有重复的,但几率很小很小,就像钥匙,几百万把锁里面可能会有一两把钥匙雷同;由字母和数字组成的12位,例如00-0C-F1-27-6D-7B


来自   https://zhidao.baidu.com/question/51226491.html


MAC地址全球唯一为什么还可以修改

MAC地址被禁用上网怎么办?

如果MAC地址被人家屏蔽了怎么办?

win7怎么修改MAC地址


首先我们要声明的是我们认识的“MAC地址的更改”不是更改网卡中的MAC,而是更改ARP缓存表中的MAC地址。

这里写图片描述

上面我们看到arp -s 10.10.0.8 00-00-00-00-00-00 把本机MAC地址更改为00-00-00-00-00-00

ARP缓存表中的MAC地址是这个,但是ipconfig /all中的physical address物理地址还是原来的,这个体ipconfig /all查看的是网卡中的MAC地址,而arp /a是查看arp缓存表中的mac地址,同样,通过本地连接更改MAC地址还只是更改ARP缓存表中的MAC地址

我们进行联网、上网时,数据包认的只是ARP 缓存表中的MAC地址,而不是到网卡中去寻找MAC,即ARP地址解析协议递交给路由的MAC地址也只是ARP缓存表中的MAC地址,可以说这个MAC地址不是真正的,而是虚拟的。

MAC地址是唯一的,但是网卡毕竟是个硬件,需要软件来支撑,即操作系统来识别.而将操作系统识别出来的MAC地址是可以更改的,它只不过是一个字符串。

MAC地址后如果是单机的话就没什么问题.若是联网的话,就会出现问题了. 同一个局域网内若是基线器连接的话,IP和MAC都可以改为一样的,这样可以共用一个IP帐号上网(网络设置要合理),但是局域网内部这两台主机之间是不能再相互访问了. 若是在不同的子网中出现了相同的MAC地址,只要他们的数据包不经过同一个数据链路层(需要计算机网络专业知识才懂)也不会出问题。

修改自己的MAC地址有两种方法,一种是硬件修改,另外一种是软件修改。硬件的方法就是直接对网卡进行操作,修改保存在网卡的EPROM里面的MAC地址,通过网卡生产厂家提供的修改程序可以更改存储器里的地址。那么什么叫做EPROM呢?EPROM是电子学中一种存储器的专业术语,它是可擦写的,也就是说一张白纸你用钢笔写了一遍以后就不能再用橡皮擦去了,而EPROM这张白纸用铅笔写后可以再擦去,可以反复改变其中数据的存储器。当然软件修改的方法就相对来说要简单得多了,在Windows中,网卡的MAC保存在注册表中,实际使用也是从注册表中提取的,所以只要修改注册表就可以改变MAC。

Windows 9x中修改:打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSetService\Class\Net\下的0000,0001,0002。

Windows 2000/XP中的修改:同样打开注册表编辑器,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ControlClass\4D36E970-E325-11CE-BFC1-08002BE10318 中的0000,0001,0002中的DriverDesc,如果在0000找到,就在0000下面添加字符串变量,命名为“NetworkAddress”,值为要设置的MAC地址,例如:000102030405

当成在本地连接属性中修改与在DOS中修改,注册表也就会相应的自动改变,与注册表修改是等效的。


来自   https://blog.csdn.net/u012195214/article/details/72795026

普通分类: