`
soardragon
  • 浏览: 316429 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

解析IP地址与MAC地址

阅读更多

一、IP地址

  对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址。IP地址由用点分隔开的4个8八位组构成,如192.168.0.1就是一个IP地址,这种写法叫点分十进制格式。IP地址由网络地址和主机地址两部分组成,分配给这两部分的位数随地址类(A类、B类、C类等)的不同而不同。网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机。一个IP地址使得将来自源地址的数据通过路由而传送到目的地址变为可能。

  二、MAC地址

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

  三、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地址。

  四、IP地址与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。


  综合上面所述,我们可以归纳出IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:

  1. 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址永远唯一且不能由用户改变。

  2. 长度不同。IP地址为32位,MAC地址为48位。

  3. 分配依据不同。IP地址的分配是基于网络拓朴,MAC地址的分配是基于制造商。

  4. 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。

分享到:
评论

相关推荐

    获取IP地址与MAC地址对应关系实验报告1

    通过分析捕获到的 ARP 报文,可以找出本机 IP 地址与 MAC 地址的对应关系。 4 . 3 设置 ARP 请求按钮响应函数当用户触发 ARP 请求时,程序发送一个包含目标 IP 地址的 ARP 请求报文,然后等待并接收 ARP 响应报文。...

    实验二:ARP协议以及IP地址和MAC地址关系.docx

    ARP,即Address Resolution Protocol,是因特网协议栈中的一种重要协议,主要功能是在局域网(LAN)中将IP地址解析为硬件地址,如以太网的MAC地址。ARP协议允许网络设备(如计算机、路由器等)在发送数据前将高层的...

    pb获取ip地址/mac地址

    网络中根据IP地址获取MAC地址,通常涉及ARP(地址解析协议)。在Windows系统中,可以使用`arp -a`命令来查询本地ARP缓存,查找对应IP的MAC地址。然而,这仅适用于同一局域网内的IP。如果目标IP不在本地网络,可能...

    C# 获取本地IP地址以及MAC地址

    C# 获取本地IP地址以及MAC地址 C# 获取本地IP地址以及MAC地址是计算机网络编程中的一项重要任务。本文将详细介绍如何使用C#语言获取本地IP地址和MAC地址。 一、获取本地IP地址 获取本地IP地址可以通过多种方式...

    pb中获得本机IP地址\MAC地址信息纯代码方式

    这个过程更复杂,因为MAC地址与网络接口卡(NIC)关联,而IP地址可以由多个接口拥有。因此,获取MAC地址可能需要遍历所有网络接口并查询其物理地址。 关于带DNS版本,这可能意味着除了获取IP和MAC地址外,还提供了...

    ARP协议的原理 获取以太网中IP地址与MAC地址的对应关系

    地址解析协议(Address Resolution Protocol, ARP)是一种在互联网协议(IP)网络中,用于将网络层的IP地址转化为数据链路层的物理地址,即MAC地址的协议。在以太网这样的局域网环境中,ARP是至关重要的,因为它允许...

    获取局域网中所有的IP地址以及MAC地址

    本文将详细解析如何通过编程实现这一功能,主要涉及的知识点包括IP地址、MAC地址的概念,以及如何在控制台程序中实现IP和MAC的扫描。 首先,我们需要理解IP地址和MAC地址的基本概念。IP地址,全称Internet Protocol...

    ARP协议与IP地址与MAC地址的绑定

    ARP协议(Address Resolution Protocol,地址解析协议)是一种重要的网络协议,用于解决以太网中IP地址与MAC地址之间的映射问题。当一个主机想要与另一个主机进行直接通信时,它不仅需要知道对方的IP地址,还需要...

    如何获取局域网内设备IP地址和MAC地址

    ARP(Address Resolution Protocol)是TCP/IP协议栈中的一个协议,用于将IP地址解析为MAC地址。ARP请求信息中,who-has字段表示要查询的IP地址,tell字段表示发送ARP请求的设备的IP地址。 知识点7:为什么需要获取...

    C#获取局域网内所有联网设备的IP地址和MAC地址

    总结,通过C#,我们可以轻松地获取局域网内设备的IP地址和MAC地址,并进行IP反向解析得到主机名。对于更复杂的网络设备发现,可能需要结合其他技术或工具。理解和掌握这些基础操作,对于网络编程和网络管理至关重要...

    通过IP地址获取对方MAC地址

    ARP是用于将IP地址解析为MAC地址的协议,它存在于TCP/IP协议栈的数据链路层。在Windows系统中,我们可以直接调用Iphlpapi.dll库中的SendArp()函数来发送ARP请求并接收响应,从而获取目标IP对应的MAC地址。 下面是一...

    获得设备的MAC地址和IP地址.doc

    本文将详细讲解如何获取设备的MAC地址和IP地址,并结合给定的代码示例进行解析。 首先,让我们了解MAC地址和IP地址的基本概念: 1. MAC地址:MAC地址是一个物理地址,由48位二进制组成,通常以12个十六进制数字...

    vc局域网的IP地址扫描器,可扫描到局域网的所有机器的名称,IP地址及MAC地址

    标题中的“vc局域网的IP地址扫描器”指的是使用Visual C++编程语言开发的一款工具,它能够探测并显示局域网(LAN)中的所有设备的名称、IP地址以及MAC地址。这款应用的核心功能是IP扫描,通过发送网络数据包并分析...

    根据Mac地址自动修改IP地址

    ARP(地址解析协议)是用来将IP地址映射到MAC地址的协议。当IP与MAC地址绑定后,即使有恶意的ARP欺骗尝试,系统也能识别并阻止,因为它会检查IP与MAC的对应关系是否正确。 3. **定时自动退出**:程序设计有自动退出...

    IP地址, MAC地址输入控件(C#源代码)

    在IT行业中,网络通信是至关重要的,而IP地址和MAC地址则是网络通信中的...通过分析和学习这段代码,开发者可以更好地理解和应用上述技术,从而构建出自己的IP地址和MAC地址输入控件,提升应用程序的专业性和用户体验。

    解绑锐捷的ip地址

    在介绍解绑方法之前,首先需要了解IP地址与MAC地址的基本概念及其关系。 - **IP地址**:Internet Protocol Address(互联网协议地址),是分配给连接到互联网的每台设备的一个数字标识符。它用于在网络中唯一标识一...

    asp.net得到本机ip地址和Mac地址

    ### ASP.NET 获取本机IP地址和MAC地址 在ASP.NET应用程序开发中,有时我们需要获取客户端或服务器本身的IP地址以及MAC地址。这对于网络诊断、安全控制等场景非常有用。本文将详细介绍如何通过C#代码实现这一功能,...

    易语言自动修改MAC地址和IP地址源码

    4. MAC地址和IP地址的处理:程序需要解析和构建MAC和IP地址字符串,确保格式正确,并能正确地应用到网络适配器上。 5. 权限控制:修改网络配置通常需要管理员权限,源码可能包含检查和提升权限的逻辑。 6. 错误...

    IP地址和MAC地址扫描

    在网络安全管理中,IP地址和MAC地址扫描是至关重要的环节,它们可以帮助我们识别网络上的设备,检测潜在的安全威胁,并确保网络资源的有效利用。IP地址(Internet Protocol Address)是网络上设备的唯一标识,而MAC...

Global site tag (gtag.js) - Google Analytics