中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 請教如何由設定好的文本文件中提取IP,MAC資料並作綁定?(已解
作者:
标题: 請教如何由設定好的文本文件中提取IP,MAC資料並作綁定?(已解 上一主题 | 下一主题
evanpp
新手上路





积分 8
发帖 3
注册 2006-11-6
状态 离线
『楼 主』:  請教如何由設定好的文本文件中提取IP,MAC資料並作綁定?(已解

小弟的構想是先於IPMAC.CFG文件中設定好電腦名稱.IP.MAC資料,格式為: A001 192.168.0.1 00-00-00-00-00-01 A002 192.168.0.2 00-00-00-00-00-02 ...... 然後以電腦名稱為判斷依據執行arp -s %IP% %MAC% 例如在名稱為A001的電腦上便會執行 arp -s 192.168.0.1 00-00-00-00-00-01的指令作綁定,請教如此需求下要如何以批處理文件來達成? 小弟不才. 爬了一個晚上文弄得頭昏眼花仍不知如何達成@_@ =============================================== 以解決~沒想到如此簡單= = [ Last edited by evanpp on 2006-11-5 at 05:10 PM ]


2006-11-6 01:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  如果已经解决,不妨把代码发出来,可以给新手一个学习代码的机会。




尺有所短,寸有所长,学好CMD没商量。 考虑问题复杂化,解决问题简洁化。
2006-11-6 05:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zerostudy
中级用户





积分 266
发帖 98
注册 2006-4-21
状态 离线
『第 3 楼』:  

@echo off for /f "tokens=1,2,3" %%a in (ipmac.cfg) do ( if "%computername%"=="%%a" arp -s %%b %%c ) 电脑名要大写.这个好像行的了.楼主是如何写的.发来看看.




纵是千年万年 亦难以忘记
2006-11-6 07:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
evanpp
新手上路





积分 8
发帖 3
注册 2006-11-6
状态 离线
『第 4 楼』:  

看到zerostudy簡潔的代碼讓小弟有點慚愧..... 不過據小弟測試的結果雖然可以正確讀取但似乎無法寫入arp tables?? 以 arp -a 指令並未看到由 ipmac.cfg 所導入的資訊 以下是小弟冗長的代碼... @echo off if exist pcname.txt del pcname.txt @echo %COMPUTERNAME% >pcname.txt for /f %%C in (pcname.txt) do set pcname=%%C if exist Computer.txt del Computer.txt find "%pcname%" \\server\game$\Config.cfg >Computer.txt for /f "skip=2 tokens=2" %%I in (Computer.txt) do set ip=%%I for /f "skip=2 tokens=3" %%M in (Computer.txt) do set mac=%%M arp -d arp -s %IP% %Mac% del Computer.txt pcname.txt exit


2006-11-7 12:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
honhaizh
初级用户





积分 35
发帖 18
注册 2006-4-26
状态 离线
『第 5 楼』:  

学习一下


2006-11-16 20:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
newaifi
初级用户





积分 154
发帖 67
注册 2006-10-31
状态 离线
『第 6 楼』:  

以下是前段时间写的一段代码。LZ可以拿去参考。带自动分配识别网关 分配IP DNS等功能。使用前请编辑 IP.ax文件。 ***************************************************************
  1. @cls
  2. @echo off
  3. @color 2f&@Title 计算机IP设置程序 v1.0
  4. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  5. @echo ※请输入您要定义的计算机名称. ※
  6. @echo ※ ※
  7. @echo(例:PC-01;User001;)
  8. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  9. Set /p User=""
  10. @cls
  11. Set NetMask=255.255.255.0
  12. Set DNS1=61.153.177.196
  13. Set DNS2=61.153.177.197
  14. rem 如果您的DNS地址不是以上所示,请自行更改.
  15. Set Aidi=192.168
  16. IF Exist Name.ax Del Name.ax
  17. Find /i "%User%" ip.ax >>Name.ax
  18. For /f "skip=2 tokens=2 delims==\" %%A in (Name.ax) Do Set aidi3=%%A
  19. For /f "tokens=1-2 delims=:/" %%c in (ip.ax) do (
  20. @echo %%c|find /i "Gateway">nul&&Set Gateway=%%d
  21. @echo %%c|find /i "%User%">nul&&Goto :Gate
  22. )
  23. Goto :eof
  24. :Gate
  25. @echo %Gateway%>Temp.ax
  26. For /f "tokens=3 delims=./" %%e in (Temp.ax) do Set aidi2=%%e
  27. @ipconfig /all >ipconfig.ax
  28. @if exist name.pak del name.pak
  29. @find "Ethernet adapter" ipconfig.ax>>name.pak
  30. @for /f "skip=2 tokens=3,4 delims=: " %%A in (name.pak) do set Name=%%A %%B
  31. @cls
  32. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  33. @echo ※您的计算机名称是 "%User%"
  34. @echo ※您的IP地址是 "%aidi%.%aidi2%.%aidi3%"
  35. @echo ※您的子网掩码是 "%NetMask%"
  36. @echo ※您的网关地址是 "%GateWay%"
  37. @echo ※您的DNS地址分配为 "%DNS1%,%DNS2%"
  38. @echo ※ 当前网卡: "%Name%"
  39. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  40. @echo ※ 确认无误后请按任意键执行修改操作.否则请停止该程序. ※
  41. @pause >log.pak
  42. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  43. @echo ※ ※
  44. @echo ※ 程序正在执行操作,请稍候....... ※
  45. @echo ※ ※
  46. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  47. Reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %User% /f >log.pak
  48. @netsh interface ip set address "%Name%" static %aidi%.%aidi2%.%aidi3% %NetMask% %Gateway% 1 >log.pak
  49. @netsh interface ip set dns "%Name%" static %DNS1% >log.pak
  50. @netsh interface ip add dns "%Name%" %DNS2% >log.pak
  51. @cls
  52. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  53. @echo ※ 恭喜您!修改成功了. ※
  54. @echo ※ ※
  55. @echo ※ 该程序由韩和编写制作.您可以传播本程序,但请保留本版权信息!
  56. @echo ※ ※
  57. @echo ※ 按任意键退出程序 ※
  58. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  59. @pause >log.pak
  60. @if exist name.pak del name.pak
  61. @if exist ipconfig.ax del ipconfig.ax
  62. @if exist Name.ax del Name.ax
  63. @if exist log.pak del log.pak
  64. @if exist temp.ax del temp.ax
韩和发表于: 2006-11-16 13:02
[ Last edited by newaifi on 2006-11-17 at 02:02 AM ]


2006-11-17 02:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
newaifi
初级用户





积分 154
发帖 67
注册 2006-10-31
状态 离线
『第 7 楼』:  

似乎跑题了.. 呵呵... 这个好像才是... 带自动识别本机IP地址和网关地址的.. 你要做的其实就是打开本程序. ************************************************************
  1. @echo off&title arp绑定工具
  2. @if exist ipconfig.txt del ipconfig.txt
  3. @ipconfig /all >ipconfig.txt
  4. @if exist arp.txt del arp.txt
  5. @arp.exe -a > arp.txt
  6. @if exist phyaddr.txt del phyaddr.txt
  7. @find "Physical Address" ipconfig.txt >phyaddr.txt
  8. @if exist ipaddr.txt del ipaddr.txt
  9. @find "IP Address" ipconfig.txt >ipaddr.txt
  10. @for /f "skip=2 tokens=15" %%I in (ipaddr.txt) do set IPAddress=%%I
  11. @for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set strMac=%%M
  12. @arp.exe -d
  13. @arp.exe -s %IPAddress% %strMac%
  14. @if exist GateWay.txt del gateway.txt
  15. @find /i "Default Gateway" ipconfig.txt >>gateway.txt
  16. @for /f "skip=2 tokens=13" %%X in (GateWay.txt) do set GateWay=%%X
  17. @if exist mac.txt del mac.txt
  18. @find "%GateWay%" arp.txt > mac.txt
  19. @for /f "skip=2 tokens=2" %%Z in (mac.txt) do set Mac=%%Z
  20. @arp.exe -s %GateWay% %Mac%
  21. @if exist mac.txt del mac.txt
  22. @if exist arp.txt del arp.txt
  23. @if exist GateWay.txt del gateway.txt
  24. @if exist ipconfig.txt del ipconfig.txt
  25. @if exist phyaddr.txt del phyaddr.txt
  26. @if exist ipaddr.txt del ipaddr.txt
  27. @if exist %Windir%\RunOne.bat del %Windir%\RunOne.bat
  28. @cls
  29. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  30. @echo ※ 你的本地连接IP: %IPAddress%
  31. @echo ※ 你的网卡MAC地址: %strMac%
  32. @echo ※ 你的网关IP地址: %GateWay%
  33. @echo ※ 你的网关MAC地址: %MAC%
  34. @echo ※ ※
  35. @echo ※ 按任意键继续 ※
  36. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  37. @pause > log.txt
  38. @cls
  39. @color 2f
  40. @echo ┌┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐
  41. @echo ┆ ━ 本地Mac及网关地址已经绑定完毕. ━ ┆
  42. @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
  43. @echo ┆ ┆
  44. @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
  45. @echo ┆ ━ 本程序由韩和编写,你可以任意传播此程序.但请保留此版权信息.谢谢. ━ ┆
  46. @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
  47. @echo ┆ ┆
  48. @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
  49. @echo ┆ ━ 作者联系方式:newaifi@gmail.com QQ:9026573 ━ ┆
  50. @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
  51. @echo ┆ 按任意键退出 ┆
  52. @echo ┕┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘
  53. @pause >>log.txt
  54. @if exist log.txt del log.txt
韩和发表于: 2006-11-16 13:12


2006-11-17 02:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hxuan999
中级用户

DOS之日


积分 337
发帖 161
注册 2006-11-4
状态 离线
『第 8 楼』:  

zerostudy兄写的就不错.




for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
2006-11-23 03:10
查看资料  发送邮件  发短消息 网志  OICQ (33899867)  编辑帖子  回复  引用回复

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


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



论坛跳转: