📜  MAC地址和IP地址的区别(1)

📅  最后修改于: 2023-12-03 14:44:06.613000             🧑  作者: Mango

MAC地址和IP地址的区别

**MAC地址(Media Access Control Address)IP地址(Internet Protocol Address)**是计算机网络中常用的两种地址类型,用于唯一标识网络设备。尽管它们都起到了地址识别的作用,但是它们在不同层面上具有一些重要的区别。

MAC地址
  1. MAC地址是由网络适配器厂商分配的,通常是具有唯一性的标识符。
  2. MAC地址是在数据链路层(第2层)上工作,用于在局域网中识别设备。
  3. MAC地址是一个48位的二进制数,通常以16进制的形式表示,由6个字节组成,用冒号或破折号分隔开。
  4. MAC地址是固定的,与设备的网卡绑定在一起,不容易更改。
  5. MAC地址是本地的,仅在局域网中可见,不能通过公共网络进行传输。

一个MAC地址的例子:00:1A:4B:11:22:33

IP地址
  1. IP地址是由网络管理员或互联网服务提供商(ISP)分配的,用于标识网络上的每台设备。
  2. IP地址是在网络层(第3层)上工作,用于在公共网络中路由和寻址。
  3. IP地址是一个32位的二进制数,通常以点分十进制的形式表示,由4个字节组成,每个字节的取值范围是0-255。
  4. IP地址是可以改变的,可以静态分配或通过DHCP动态获取。
  5. IP地址是全球唯一的,用于在Internet上进行数据包的传输。

一个IP地址的例子:192.168.0.1

如何使用MAC地址和IP地址
  • MAC地址用于局域网内设备之间的通信,如通过交换机进行数据帧的转发。可以通过命令行工具(如ipconfigifconfig)查看设备的MAC地址。
  • IP地址用于在Internet上进行数据包的传输,通过路由器进行不同网络之间的通信。可以通过命令行工具或网络设置界面查看设备的IP地址。
示例代码

使用Python获取本机MAC地址和IP地址的示例代码:

import socket
import uuid

# 获取MAC地址
mac_address = ':'.join(['{:02x}'.format((uuid.getnode() >> ele) & 0xff) for ele in range(0, 8 * 6, 8)][::-1])

# 获取IP地址
ip_address = socket.gethostbyname(socket.gethostname())

print(f"MAC地址: {mac_address}")
print(f"IP地址: {ip_address}")

以上代码使用了Python的socket和uuid模块来获取本机的MAC地址和IP地址。可以通过调用getnode()函数来获取MAC地址,并使用gethostbyname()函数来获取IP地址。

以上是MAC地址和IP地址的区别,请注意它们的作用和使用方式。