中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 自己开发一个设置DHCP地址保留和IP地址与MAC的绑定的脚本
作者:
标题: 自己开发一个设置DHCP地址保留和IP地址与MAC的绑定的脚本 上一主题 | 下一主题
tangz
新手上路





积分 8
发帖 2
注册 2006-5-29
状态 离线
『楼 主』:  自己开发一个设置DHCP地址保留和IP地址与MAC的绑定的脚本

IP.BAT在WINDOWS2003下测试通过,内容如下:

  Quote:
REM 自动绑定MAC地址和设置DHCP保留的脚本(by tangz)

@ECHO ON

SETLOCAL EnableDelayedExpansion

SET IPTXTPATH=C:\DHCPWEB\IP.TXT
REM IPTXTPATH为IP.TXT文件存放的路径。

REM 如果IP.TXT文件不存在,直接退出。否则读取IP.txt文件生成时间和SET.ini里UpdateDateTime的时间。
IF NOT EXIST %IPTXTPATH% (GOTO END) ELSE (
FOR %%h IN (%IPTXTPATH%) DO (SET IPTXTDATE=%%~th)
FOR /F "tokens=1,2 delims==" %%f IN (SET.ini) DO (SET UpdateDateTime=%%g)
)

REM 判断IP.txt文件有没有修改,如果没有修改直接跳到:IPMAC,否则更新UpdateDateTime为IP.txt文件的修改时间。
IF "%UpdateDateTime%"=="%IPTXTDATE%" (GOTO IPMAC) ELSE (ECHO UpdateDateTime=%IPTXTDATE%>SET.ini)

REM 判断MAC.BAT文件是否存在
IF EXIST MAC.BAT DEL MAC.BAT

REM 判断NETSH.TXT文件是否存在
IF EXIST NETSH.TXT DEL NETSH.TXT

REM 生成NETSH.TXT和MAC.BAT文件
ECHO DHCP >>NETSH.TXT
ECHO SERVER >>NETSH.TXT

FOR /F "tokens=1,2,3,4,5" %%i IN (%IPTXTPATH%) DO (
IF NOT "%%i"=="保留" (
IF NOT DEFINED %%m (
SET %%m=A & ECHO SCOPE %%m>>NETSH.TXT
IF EXIST REIP.TXT DEL REIP.TXT
NETSH DHCP SERVER SCOPE %%m SHOW RESERVEDIP >REIP.TXT
FOR /F "skip=7 tokens=1,2,3,4" %%a IN (REIP.TXT) DO (IF "%%d"=="" (IF NOT "%%c"=="" (SET var=%%c & ECHO DELETE RESERVEDIP %%a !var:-=!>>NETSH.TXT)))
)
SET var=%%k & ECHO ADD RESERVEDIP %%j !var:-=!reservedip %%i both>>NETSH.TXT
)
ECHO ARP -s %%j %%k -N %%l >>MAC.BAT
)

ECHO EXIT >>NETSH.TXT

:RESERVEDIP
ECHO 设置DHCP保留
CALL NETSH <NETSH.TXT

:IPMAC
ECHO IP和MAC绑定
CALL MAC

:END
ECHO 结束

ENDLOCAL

自动绑定MAC地址和设置DHCP保留的脚本的使用方法:

建立一个VBS的脚本,在后台调用运行IP.BAT文件。

IP.VBS内容:

  Quote:
set WshShell = CreateObject("WScript.Shell")
cmd=WshShell.RUN("ip.bat", runhide)

将IP.VBS添加到计划任务里,每隔5分钟运行一次。

  Quote:
schtasks /create /sc minute /mo 5 /tn AutoDHCP /tr "C:\DHCP\IP.VBS" /ru system

注意:脚本运行时会自动生成MAC.BAT,REIP.TXT,NETSH.TXT,SET.ini四个文件。其中MAC.BAT是绑定MAC和IP的脚本,REIP.TXT是从系统DHCP服务里导出的保留IP列表,NETSH.TXT是设置DHCP保留的命令列表,SET.ini是存放IP.BAT文件修改时间的配置文件。

IP.TXT文件格式:

用户名称 IP地址 MAC地址 网关 DHCP域

举例:IP.TXT文件内容(DHCP服务器同时为192.168.0.X和192.168.1.X网段提供服务):

  Quote:
保留 192.168.0.10 ff-ff-ff-ff-ff-ff 192.168.0.1 192.168.0.0
张三(台式机) 192.168.0.11 00-16-36-30-b8-8e 192.168.0.1 192.168.0.0
保留 192.168.0.12 ff-ff-ff-ff-ff-ff 192.168.0.1 192.168.0.0
保留 192.168.0.13 ff-ff-ff-ff-ff-ff 192.168.0.1 192.168.0.0
保留 192.168.0.14 ff-ff-ff-ff-ff-ff 192.168.0.1 192.168.0.0
李四(笔记本) 192.168.0.15 00-0a-e4-24-77-13 192.168.0.1 192.168.0.0
保留 192.168.1.10 ff-ff-ff-ff-ff-ff 192.168.1.1 192.168.1.0
王五(台式机) 192.168.1.11 00-16-36-30-b8-8e 192.168.1.1 192.168.1.0
保留 192.168.1.12 ff-ff-ff-ff-ff-ff 192.168.1.1 192.168.1.0
保留 192.168.1.13 ff-ff-ff-ff-ff-ff 192.168.1.1 192.168.1.0
保留 192.168.1.14 ff-ff-ff-ff-ff-ff 192.168.1.1 192.168.1.0
李四(笔记本) 192.168.1.15 00-0a-e4-24-77-13 192.168.1.1 192.168.1.0

我的BLOG:tangz.tiptoperp.com 欢迎大家与我交流

[ Last edited by tangz on 2006-12-13 at 12:01 PM ]

2006-12-13 11:55
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 2 楼』:  

真复杂,欣赏~~



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-13 12:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
echo
初级用户





积分 148
发帖 69
注册 2006-11-23
状态 离线
『第 3 楼』:  

顶一个,对网管来说,有的时候还是用得着的

2006-12-13 22:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: