Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59232
  • 博文数量: 14
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-22 21:48
文章分类

全部博文(14)

文章存档

2011年(1)

2010年(1)

2009年(2)

2008年(10)

我的朋友
最近访客

分类: 网络与安全

2008-10-21 20:02:16

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

MAC地址的作用

IP地址就如同一个职位,而MAC地址则好像是去应聘这个职位的人才,职位可以既可以让甲坐,也可以让乙坐,同样的道理一个节点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。本身有的计算机流动性就比较强,正如同人才可以给不同的单位干活的道理一样的,人才的流动性是比较强的。职位和人才的对应关系就有点像是IP地址与MAC地址的对应关系。比如,如果一个网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。当然MAC地址除了仅仅只有这个功能还是不够的,就拿人类社会与网络进行类比,通过类比,我们就可以发现其中的类似之处,更好地理解MAC地址的作用。

无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。其实人类社会和网络也是类似的,试想在人际关系网络中,甲要捎个口信给丁,就会通过乙和丙中转一下,最后由丙转告给丁。在网络中,这个口信就好比是一个网络中的一个数据包。数据包在传送过程中会不断询问相邻节点的MAC地址,这个过程就好比是人类社会的口信传送过程。相信通过这两个例子,我们就可以进一步理解MAC地址的作用。

与MAC地址相关的命令与软件

在人类社会社交中,我们认识一个人往往只会知道他的姓名,而身份证号码在一般的人际交往中会被忽略。同样在网络中,我们往往只会知道同事或者网友的IP地址,并不会去过多地关心对方的MAC地址。要成长为网络高手,我们可以使用一些方法去了解对方的MAC地址。在这里介绍两种常用的方法,在Windows 9x 中可用WinIPcfg获得,在Windows 2000/XP中可用IPconfig -all获得。

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

在MS-DOS状态下,输入下表的命令

操作系统 命令
Windows2000 ipconfig /all
WindowsXP ipconfig /all
WindowsNT ipconfig /all
Windows98 ipconfig /all 或者 winipcfg
WindowsME ipconfig /all 或者 winipcfg
Linux /sbin/ifconfig -a


下面是在window2000下查看MAC地址的例子。

C:\>ipconfig /all
Windows 2000 IP Configuration
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
Deion : Intel(R) PRO/100 VE Network Connection
Physical Address. . . . . . . . . : 05-16-DC-59-C2-34
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 202.194.145.33
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 202.194.145.254
DNSServers . . . . . . . . . . . : 202.194.145.1




更改MAC地址

一般MAC地址在网卡中是固定的,当然也有网络高手会想办法去修改自己的MAC地址。修改自己的MAC地址有两种方法,一种是硬件修改,另外一种是软件修改。

硬件的方法就是直接对网卡进行操作,修改保存在网卡的EPROM里面的MAC地址,通过网卡生产厂家提供的修改程序可以更改存储器里的地址。那么什么叫做EPROM呢?EPROM是电子学中一种存储器的专业术语,它是可擦写的,也就是说一张白纸你用钢笔写了一遍以后就不能再用橡皮擦去了,而EPROM这张白纸用铅笔写后可以再擦去,可以反复改变其中数据的存储器。

当然软件修改的方法就相对来说要简单得多了,在Windows中,网卡的MAC保存在注册表中,实际使用也是从注册表中提取的,所以只要修改注册表就可以改变MAC。Windows 9x中修改:打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Service\Class\Net\下的0000,0001,0002。

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

完成上述操作后重启就好了。一般网卡发出的包的源MAC地址并不是网卡本身写上去的,而是应用程序提供的,只是在通常的实现中,应用程序先从网卡上得到MAC地址,每次发送的时候都用这个MAC作为源MAC而已,而注册表中的MAC地址是在Windows安装的时候从网卡中读入的,只要你的操作系统不重新安装应该问题不大。
小知识:ARP(Address Resolution Protocol)是地址解析协议,ARP是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。ARP协议是通过IP地址来获得MAC地址的。

ARP原理:某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。ARP表:为了回忆通信的速度,最近常用的MAC地址与IP的转换不用依靠交换机来进行,而是在本机上建立一个用来记录常用主机IP-MAC映射表,即ARP表。
阅读(765) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~