其实很简单,即建立/etc/ethers文件。格式如下:

192.168.200.10 08:36:4E:B0:24:47

然后在/etc/rc.d/rc.local最后添加:arp -f 即可

2.4内核的iptables可以对IP和Mac同时进行限定,使用该功能对合法IP的规则同时限定IP地址和Mac地址即可。

    一、问题的提出    

    校园网建成后,要求在服务器端把网内各工作站的MAC地址和分配的静态IP地址进行绑定,以方便统一管理,减小安全隐患。无论是在终端获取MAC地址后再在服务器端进行绑定,还是利用“MAC扫描器”远程批量获取MAC地址,对于网管员来说工作量都非常大。有没有更加方便快捷的方法呢?    

    二、解决问题思路    

    笔者经过摸索,发现组合使用“MAC扫描器”和Excel 2000可以很好地解决这个问题。思路如下:  

    1. 运行“MAC扫描器”(下载地址:http://dl.163.com/html/10/10456.html),扫描完成后,点击[保存]按钮,将扫描的结果保存为文本文件,如Mac.txt。          

    2. 利用Excel强大的数据处理功能,将文本文件中的MAC地址转换成ARP命令要求的格式后,把数据复制粘贴到记事本,保存为批处理文件。      

    3. 在服务器端运行这个批处理文件就大功告成了。   

    三、具体操作步骤    

    1.将Mac.txt导入Excel工作簿    

    (1)启动Excel 2000,新建一个工作簿,保存为“MAC地址表.xls”。单击“数据→获取外部数据→导入文本文件”,在弹出的对话框中,选择用“MAC扫描器”获得的文本文件“Mac.txt”,单击[导入]按钮,弹出“文本导入向导”对话框。    

    (2)在“文本导入向导——3步骤之1”中点击“原始数据类型”,在“请选择最合适的文件类型”单选项下,修改默认的“固定宽度”为“分隔符号”,然后单击[下一步]按钮;进入“文本导入向导——3步骤之2”,在“分隔符号”多选项下,取消“Tab键”,只选中“空格”项,再单击[下一步]按钮;进入“文本导入向导——3步骤之3”,单击[完成]按钮,弹出“导入数据”对话框时,单击[确定],完成数据导入。导入后的工作表如图3所示。      

    2. 利用Excel处理数据    

    (1)在A列前插入一列,在A1单元格内输入绑定MAC地址的命令和参数“ARP -S”。    
    (2)在MAC地址和计算机名两列之间插入7列,列号依次为D、E、F、G、H、I、J。    

    (3)利用字符串函数分割12位MAC地址为两两一组:    

在D1单元格输入“=left(C1,2)”;    

在E1单元格输入“=mid(C1,3,2)”;    

在F1单元格输入“=mid(C1,5,2)”;    

在G1单元格输入“=mid(C1,7,2)”;    

在H1单元格输入“=mid(C1,9,2)”;    

在I1单元格输入“=right(C1, 2)”。    

    (4)在J1单元格内把D1~I1单元格的内容合并起来,中间用减号分隔。合并方法:在J1内输入“=D1&&"-"&&E1&&"-"&&F1&&"-"&&G1&&"-"&&H1&&"-"&&I1”。

    (5)利用填充法完成A列和D~J列的数据处理

    (6)隐藏C~I列。    

    3. 制作批处理文件    

    (1)复制Excel工作表A、B、J列的数据,粘贴到记事本中。保存工作簿“MAC地址表.xls”,退出Excel。    

    (2)保存记事本文件为Mac.bat。

    4. 批量绑定MAC地址和IP地址 
  
   在服务器端DOS模式下运行Mac.bat,即可完成批量MAC地址和IP地址的绑定。

  如今大家都是ADSL上网,当你查网费时就会发现,每次上网电信都会记录下你的网卡MAC地址,这是因为IP地址是动态的(每次上网都不同),而MAC地址却是不变的──每张网卡都有一个与众不同的MAC(物理)地址,因此MAC地址就成了客户的网上身份证,通过记录MAC地址,即可确认是你上的网!

  一、MAC地址的用途

  MAC地址在网卡中是固定的,每张网卡的MAC地址都不一样。网卡在制作过程中,厂家会在它的EPROM里面烧录上一组数字,这组数字,每张网卡都各不相同,这就是网卡的MAC(物理)地址。

  由于MAC地址的唯一性,因此它主要用来识别网络中用户的身份。例如ADSL上网时,电信用它来记费,确认是你上的网;在校园网中,MAC地址也可以用来识别用户。对于校园网的正式用户,其MAC地址会登记在服务器端,假如你是非法用户,服务器中就没有你的网卡MAC地址,这样当你试图连上网时,服务器就会立刻认出你、阻止你连上网络。

  二、MAC地址是可以修改的

  有些场合,例如冒充网络中的正式用户,就需要修改你的网卡MAC。要修改MAC地址,你可以通过硬件的方法实现,即利用网卡厂家提供的修改程序来烧录网卡的EEPROM,这样做虽然可行,但是风险很大、操作也复杂,即使你很有经验,也难免在操作中出现错误。

  其实你完全没必要用烧录方法、修改网卡中的MAC地址。要知道Windows安装的时候,会自动从网卡中读入MAC地址,把它存放在注册表中以备后用。当数据在网络中传输时,从网卡发出的数据包中要求有一个源MAC地址,这个MAC地址就是从注册表中读取的(并非从网卡中读取的),因此只要你修改了注册表中的MAC地址,就相当于改了网卡EEPROM中的MAC地址,两者实际效果是完全相同的!

  三、修改注册表中MAC的方法

  1、使用软件修改

  本方法适用于所有类型的网卡。在不同的Windows下,要用不同的软件修改MAC。

  (1)Win2003/XP/2000

  如果你的系统是Win2003/XP/2000,可以使用SMAC(下载地址http://www.klcconsulting.net/smac/#Download)。这款软件并不能修改网卡中的MAC地址,只能修改注册表中的MAC。

  该软件有两种运行模式,如果你启用了“Windows Management Instrumentation (WMI)”服务,软件即运行在[WBEM ON]模式下,可以显示更多的网卡信息,否则运行在[WBEM OFF]模式下,在软件窗口标题栏可看到当前运行模式。

  软件的使用非常简单,运行后点击“Refresh”,窗口中的列表框将显示网卡的类型、IP地址、Active MAC等,在下面六个输入框中输入你指定的MAC地址,然后点击右侧的“Update MAC”,即可修改完成;最后重启电脑使修改值生效。

  注意,试用版不能输入新的MAC地址,只能把MAC改成0C-0C-0C-0C-0C-01

  (2)Win98

  如果你的系统是Win98,建议使用“Mac扫描器”,这个工具可以修改注册表中的MAC地址,然后重启电脑使修改生效。

  2、在网卡属性中修改

  如果你的网卡采用了RealTek公司的RTL8139芯片,就可以在网卡属性中修改MAC,这样注册表中的MAC地址也会一同改变,方法如下:

  在Win2003/XP/2000中,点击菜单“开始”/设置/控制面板,双击“系统”,点击“硬件”/设备管理器,在设备管理器中展开“网络适配器”,右击要修改MAC地址的网卡,选择“属性”;点击“高级”选项卡,在“属性”下,选择点击Network Address项目(图2),在右侧“值”的下方,输入你要指定的MAC地址值(例如020202020202),注意要连续输入12个数字或字母(中间不要输入-);重新启动电脑后,修改即可生效。至于Win98下的MAC修改方法,与以上方法类似。
  如果修改之后,在Win2003/XP/2000 下,你又想把注册表中的MAC地址恢复成原样,可以选择“Network Address”项,将右边的值选择为“不存在”,再重新启动即可;在Win98下是选择“没有显示”。

  3、在注册表中修改

  对于非RTL8139芯片的网卡,你可以直接修改注册表中的MAC,注意:修改注册表前,要先备份注册表。

  (1)Win2003/XP/2000

  点击“开始”/运行,输入regedit打开注册表,定位到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002BE10318}000、0001、0002等主键下,查找DriverDesc的内容,了解网卡使用了哪个主键(例如0001),如果主键下有params项,则该主键也是网卡所使用的;

  例如网卡使用了0001主键,因此我们就选中它,在其右边建一个字符串项(名为NetworkAddress),双击该串,输入你指定的MAC地址值(注意应该是12位的连续数字或字母,其间没有-号);在0001下的NDIparams中添加一项子键(名为NetworkAddress),选择该子键,在其右边添加名为default的字符串,键值为修改后的MAC地址,与上面的数值相同;修改后重启生效。

  (2)Win98

  点击“开始”/运行,键入winipcfg选择你要修改的网卡,并记录下MAC地址值;然后点击“开始”/运行,输入regedit打开注册表,定位到HKEY_LOCAL_MACHINESystemCurrent ControlSetServicesClassNet,下面有“0000”、“0001”、“0002”等子键;从“0000”子键开始点击,依次查找子键下的“DriverDesc”键内容,直到找到刚才记录的MAC地址为止;

  例如网卡使用了0001主键,因此我们就选中它,在其右边新建一个串,名称为networkaddress,再双击该串,输入新的MAC地址值(注意应该是12位的连续数字或字母,其间没有-号);最后重启电脑使修改生效。

4、linux系统

  如果你的系统是linux,想修改系统中的MAC地址(例如改为020202020202),操作方法是:用#ifconfig eth0 down 先把网卡禁用,否则会报告系统忙,无法更改;然后再用ifconfig eth0 hw ether 020202020202 即可。

  如果你想永久修改系统中的MAC地址,可以这样操作:在/etc/rc.d/rc.local中加入以下三行(也可在/etc/init.d/network中添加以下三行)

  ifconfig eth0 down

  ifconfig eth0 hw ether 020202020202

  ifconfig eth0 up

  四、MAC地址改好了吗?

  如果你想知道系统中的MAC地址是否修改成功了,可以这样操作:重启电脑,在命令提示符下,输入IPconfig/all命令,于是Physical Address右边就会显示一个地址,你检查一下即可得知MAC是否修改成功了。