MAC地址和IP地址

设备的MAC地址是出厂就设定好的,每台设备的MAC地址都是全球唯一的。

在OSI(Open System Interconnection,开放系统互连)7层网络协议(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)参考模型中,第二层为数据链路层(Data Link)。它包含两个子层,上一层是逻辑链路控制(LLC:Logical Link Control),下一层即是我们前面所提到的MAC(Media Access Control)层,即介质访问控制层。所谓介质(Media),是指传输信号所通过的多种物理环境。常用网络介质包括电缆(如:双绞线,同轴电缆,光纤),还有微波、激光、红外线等,有时也称介质为物理介质。MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。这个地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,它都有相同的MAC地址,MAC地址一般不可改变,不能由用户自己设定。

即MAC地址是不变的。


MAC地址是由6个两位16进制数组成的,例如:40:16:56:ab:ab:92.


设备的IP地址会根据所在网络的不同不停变换,IP地址是TCP/IP协议指定给主机的32位地址。

例如我们平时使用的类似192.168.1.1的IP地址,是IP地址的点分十进制的写法,也是最常用的一种写法。


IP地址本身是一个32的二进制数,被“点分十进制”写法分为了4个八位二进制数。

如点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。





### 三级标题:概念解析 MAC地址是一种物理地址,它被固化在网络设备的硬件中,通常由设备制造商分配[^2]。每个网络接口控制器(NIC)都有一个唯一的MAC地址,这个地址在全球范围内是唯一的,并且几乎不可更改[^4]。MAC地址的主要作用是在同一局域网内唯一标识一个设备,以便于数据帧能够在本地网络中正确地从源主机传输到目标主机。 IP地址则是一个逻辑地址,它是根据网络协议栈来定义的,可以动态分配改变[^4]。IPv4地址是由四个0至255之间的数字组成,而IPv6地址则是更长的一串十六进制数。IP地址不仅用来标识网络上的设备,还包含了关于如何到达该设备的位置信息。这意味着IP地址允许数据包通过互联网路由到正确的网络以及最终的目的地设备。 ### 三级标题:工作层次与功能 在OSI模型中,MAC地址属于数据链路层(第二层),负责处理局域网内部的数据传输[^4]。当数据需要发送时,系统会使用ARP(地址解析协议)将IP地址转换成对应的MAC地址,以确保数据能够准确无误地送达局域网内的指定设备[^3]。 另一方面,IP地址位于网络层(第三层),其主要职责是提供跨网络的数据传输机制。IP地址使得不同网络之间的通信成为可能,它不仅指明了目的设备的身份,还提供了必要的路径选择信息,让路由器能够决定最佳的数据转发路线。 ### 代码示例 下面是一个简单的Python脚本,用于展示如何获取本机的MAC地址IP地址: ```python import uuid import socket # 获取MAC地址 def get_mac_address(): mac_num = hex(uuid.getnode()).replace('0x', '').upper() mac = '-'.join(mac_num[i:i+2] for i in range(0, 12, 2)) return mac # 获取IP地址 def get_ip_address(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: # 连接到一个外部服务器,这里选择8.8.8.8作为Google DNS服务器 s.connect(('8.8.8.8', 9999)) ip = s.getsockname()[0] finally: s.close() return ip print("MAC Address: %s" % get_mac_address()) print("IP Address : %s" % get_ip_address()) ``` 这段代码首先利用`uuid`模块获取本机的MAC地址,然后通过创建一个UDP套接字并连接到已知的外部服务来获取本机的公网IP地址。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值