Board logo

标题: [网络工具] 批处理IP绑定MAC(本机和网关)(函数版) [打印本页]

作者: youxi01    时间: 2008-1-6 10:59     标题: 批处理IP绑定MAC(本机和网关)(函数版)

IP绑定MAC(本机和网关)(函数版)
原理:通过专门的 pickup 函数来对 ipconfig /all的结果进行分析,提取。
优点:不产生临时文件、不使用find;
缺点:重复调用函数时会导致重复运行 ipconfig /all命令,导致效率下降
  1. ::==================IP绑定MAC(本机和网关)==============
  2. ::code by youxi01@bbs.bathome.net 2008-1-6
  3. ::原理:通过专门的 p:PickUP 函数来对 ipconfig /all的结果进行分析,提取。
  4. ::优点:不产生临时文件、不使用find;可以根据p:PickUP自由提取其它数据段
  5. ::缺点:重复调用函数时会导致重复运行 ipconfig /all命令,导致效率下降
  6. @echo off & setlocal enabledelayedexpansion
  7. Rem '/*=============初始化定义=================*/
  8. title IP绑定MAC(本机和网关)@bbs.bathome.net
  9. Rem '/*=============读取本机的MAC地址,并保存在MAC_addr中,下类同=======*/
  10. call :PickUP "Physical Address" "MAC_addr"
  11. call :PickUP "IP Address" "IP_addr"
  12. arp -s %IP_addr:*:=% %MAC_addr:*:=%
  13. Rem '/*======获取网关IP及MAC并绑定==============*/
  14. call :PickUP "Default Gateway" "GW_addr"
  15. for /f "skip=3 tokens=2" %%i in ('arp -a %GW_addr:*:=%') do set GW_MAC=%%i
  16. arp -s %GW_addr:*:=% %GW_MAC%
  17. pause>nul
  18. Rem '/*=============IPconfig信息提取函数==================
  19. :PickUP 标志符 结果返回变量
  20. set "flag=%~1"
  21. for /f "delims=. tokens=1,*" %%i in ('ipconfig /all') do (
  22.      Rem '/*-------下面这句的目的是为了去掉字符串两端的空格-----*/
  23.      for /f "tokens=*" %%a in ("%%i") do set "var=%%~nxa"
  24.      if "%flag%"=="!var!" (
  25.          set "%~2=%%j"
  26.          goto :eof
  27.       )
  28. )
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2