了解 MAC地址

MAC(Media Access Control,介质访问控制)地址,或称为MAC位址、硬件地址,用来定义网络设备的位置。MAC集成在网卡,由48bit的2进制的数字组成,0~23位数字叫作组织唯一标志符(organizationally unique,是识别局域网节点的标识)。24~47位是由厂家自己分配,其中第48位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家写入网卡的EPROM芯片中,芯片中的数据可以通过程序进行擦写,它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。也就是说,在网络底层的物理传输过程中,数据传输是通过物理地址来识别主机的,MAC地址就如同身份证上的身份证号码,它一定是全球唯一的。

  • MAC地址结构

网络中每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址,由网络设备制造商生产时写在硬件内部。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后6位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不去更改自己的MAC地址,那么MAC地址在世界上就是唯一的。 

  • 作用

IP地址就如同一个职位,而MAC地址则像是去应聘这个职位的人。职位既可以由甲担任,也可以由乙担任。同理,一个节点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。

无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol,地址解析协议)负责将IP地址映射到MAC地址上来完成的。 

  • 应用

身份证就是用来证明一个人的身份。平日身份证的作用并不是很大,但是到了有的关键时刻,必须有身份证来说明一个人的一切。

那么,IP地址与MAC地址绑定,就如同在日常生活中一个人与身份证的关系。因为,IP地址可以随意的,但MAC地址是唯一说明IP地址身份的。例如,为防止IP地址被盗用,通常交换机的端口绑定(端口的MAC表使用静态表项),可以在每个交换机端口只连接一台主机的情况下防止修改MAC地址的盗用,如果是三层设备还可以提供交换机端口、IP地址和MAC地址三者的绑定。[3] 

  • 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地址,通过中间节点传送,从而最终到达目的网络)。

  • 获取方法

在Windows系统中查看本机MAC地址时,需要在“命令提示符”窗口中输入ipconfig /all命令,其运行结果如图所示。在其中即可看到本机的MAC地址。

使用ipconfig /all命令只能单条获得MAC地址,而且使用起来很麻烦。对于网管人员,利用“MAC扫描器”工具即可远程批量获取MAC地址,该软件是一款用于批量获取远程计算机网卡物理地址的网络管理软件,运行于网络(局域网、Internet都可以)内的一台机器上,即可监控整个网络的连接情况,实时检测各用户的IP、MAC、主机名、用户名等,并进行记录以供查询,可以由用户自己加以备注。该软件可以进行跨网段扫描,可以和数据库中的IP与MAC地址进行比较,发现修改IP或使用虚假MAC地址的现象,可进行及时报警。 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 易语言是一种基于国内Windows平台的编程语言,主要用于开发Windows应用程序。由于Mac地址是用于唯一标识网络设备的硬件地址,因此易语言并不直接支持修改Mac地址的功能。但我们可以通过调用操作系统提供的API函数来实现修改Mac地址的目的。 具体步骤如下: 1. 首先,需要使用易语言的内置函数WinExec来执行一个命令,这个命令是用于调用操作系统提供的修改Mac地址的工具程序。比如在Windows下,可以使用"reg"命令来修改Mac地址。命令的具体格式为:"reg add HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0001 /v NetworkAddress /d 新的Mac地址 /f"。 2. 接下来,需要将这个命令放置在易语言的代码中,可以使用字符串变量来保存这个命令。 3. 最后,通过调用WinExec函数,将前面保存的命令传递给操作系统执行,从而实现修改Mac地址的功能。 需要注意的是,修改Mac地址属于对系统进行底层操作,需要以管理员权限运行程序。此外,修改Mac地址也需要谨慎操作,避免对网络设备产生不可逆的损坏或者不正常的网络连接。 综上所述,虽然易语言本身并不原生支持修改Mac地址的功能,但可以通过调用操作系统提供的API函数来实现该功能。 ### 回答2: 易语言是一种用于Windows操作系统的简单编程语言,因此它并不直接支持修改Mac地址的功能。要在易语言中修改Mac地址,需要借助系统命令或者调用外部工具来完成。 具体的实现方法可以通过以下步骤进行: 1. 获取自定义的Mac地址:首先,你需要编写一个函数或者输入框来接收用户输入的自定义Mac地址。在易语言中,你可以使用`inputbox`函数或者`input`命令来实现这个功能。 2. 调用系统命令或者外部工具:易语言可以通过`shell`命令来执行系统命令或者调用外部工具。你可以使用`shell`命令配合`ifconfig`命令(适用于Linux系统)或者`netsh`命令(适用于Windows系统)来修改Mac地址。 3. 解析系统命令或者外部工具的输出结果:通过解析命令或者工具的输出结果,可以判断Mac地址是否修改成功。你可以使用`findstr`命令(适用于Windows系统)或者`grep`命令(适用于Linux系统)来搜索并解析输出结果。 总体来说,在易语言中修改Mac地址需要使用系统命令或者调用外部工具来完成,并且还需要对命令或者工具的输出结果进行解析。当然,具体的编码和实现还要根据具体的操作系统和需求来确定。 ### 回答3: 易语言是一种简单易学的编程语言,适合初学者使用。要修改MAC地址的源码,我们可以利用易语言提供的网络编程组件来实现。 首先,我们需要了解MAC地址的结构。MAC地址由6个字节组成,通常以十六进制表示,其中前3个字节代表厂商代码,后3个字节代表设备序列号。 下面是一个简单的易语言源码示例,用于修改网络适配器的MAC地址: ``` // 引入网络编程组件 $使用"easysocket.dll" // 修改MAC地址的函数 全局函数 修改Mac地址(text 新地址) -> 是否成功 { // 打开网络适配器 int 适配器句柄 = 网络适配器打开() // 获取原始MAC地址 text 原地址 = 网络适配器取MAC地址(适配器句柄) // 判断新地址是否有效 if (字符串长度(新地址) != 17) { 返回 否 } // 设置新的MAC地址 int 结果 = 网络适配器设置MAC地址(适配器句柄, 新地址) // 关闭网络适配器 网络适配器关闭(适配器句柄) // 判断设置是否成功 if (结果 == 0) { 返回 是 } else { 返回 否 } } // 测试代码 定义 新地址 = "00:11:22:33:44:55" 如果 (修改Mac地址(新地址)) { 提示框("修改成功!") } 否则 { 提示框("修改失败!") } ``` 上述源码首先引入了网络编程组件,并定义了一个函数来修改MAC地址。函数内部打开网络适配器,获取原始MAC地址,并根据传入的新地址进行修改。最后,关闭网络适配器并返回是否修改成功的结果。 以上仅是一个简单的示例,实际使用中还需考虑权限问题和适配器的选择等因素。希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值